Vòng lặp được sử dụng trong lập trình để lặp lại một đoạn code cụ thể. Trong bài viết này, bạn sẽ học cách tạo các vòng lặp while và do… while trong lập trình Kotlin.

Vòng lặp được sử dụng trong lập trình để lặp lại một đoạn code cụ thể cho đến khi một điều kiện nhất định nào đó được đáp ứng (biểu thức kiểm tra trả kết quả là false).

Vòng lặp khiến cho máy tính trở thành những máy móc thú vị. Hãy tưởng tượng bạn cần in một câu 50 lần trên màn hình của bạn. Đúng, bạn có thể làm điều đó bằng cách sử dụng câu lệnh in 50 lần (không sử dụng các vòng lặp). Vậy khi bạn cần in một câu nào đó một triệu lần thì sao? Bạn sẽ cần sử dụng các vòng lặp.

Bạn sẽ tìm hiểu về hai vòng lặp while và do..while trong bài viết này qua các ví dụ.

Nếu bạn đã quen thuộc với Vòng lặp while và do… while trong Java, thì bạn cũng sẽ quen với các vòng lặp này trong Kotlin.

1. Vòng lặp while trong Kotlin

Cú pháp của vòng lặp while là:

while (testExpression) {
    // codes inside body of while loop
}

1.1. Vòng lặp while hoạt động như thế nào?

Biểu thức kiểm tra bên trong dấu ngoặc đơn là biểu thức Boolean .

Nếu biểu thức kiểm tra được trả giá trị là true thì

  • các câu lệnh bên trong vòng lặp while được thực hiện.
  • sau đó, biểu thức kiểm tra được đánh giá lại.

Quá trình này diễn ra cho đến khi biểu thức kiểm tra được trả giá trị false.




Nếu biểu thức kiểm tra được trả về  false,

  • vòng lặp while bị chấm dứt.

1.2. Sơ đồ khối của vòng lặp while 

Ví dụ: Vòng lặp while trong Kotlin

// Program to print line 5 times

fun main(args: Array<String>) {

    var i = 1

    while (i <= 5) {
        println("Line $i")
        ++i
    }
}

Khi bạn chạy chương trình, kết quả sẽ là:

Line 1
Line 2
Line 3
Line 4
Line 5

Thông báo, câu lệnh ++i bên trong vòng lặp while. Sau 5 lần lặp, biến i sẽ được tăng lên 6. Sau đó, biểu thức kiểm tra i <= 5 sẽ trả về giá trị false và vòng lặp kết thúc.

Nếu phần thân của vòng lặp chỉ có một câu lệnh, thì không cần thiết phải sử dụng dấu ngoặc nhọn { }. 

Ví dụ: Tính tổng các số tự nhiên

// Program to compute the sum of natural numbers from 1 to 100.
fun main(args: Array<String>) {

    var sum = 0
    var i = 100

    while (i != 0) {
        sum += i     // sum = sum + i;
        --i
    }
    println("sum = $sum")
}

Khi bạn chạy chương trình, kết quả sẽ là:

sum = 5050

Ở đây, biến sum được khởi tạo với giá trị là 0 và i được khởi tạo với giá trị là 100. Trong mỗi lần lặp của vòng lặp while, biến sum được gán bằng sum + i và giá trị của i giảm đi 1 đơn vị cho đến khi i bằng 0. Để các bạn hình dung tốt hơn,

(Hình ảnh)

Để tìm hiểu thêm về biểu thức kiểm tra và cách đánh giá, hãy truy cập các toán tử so sánh và logic .




2. Vòng lặp do… while trong Kotlin 

Các vòng lặp do…while tương tự như vòng lặp while nhưng có một sự khác biệt quan trọng. Phần thân của vòng lặp do…while được thực hiện một lần trước khi biểu thức kiểm tra được đánh giá.

Cú pháp của nó là:

do {
   // codes inside body of do while loop
} while (testExpression);

2.1. Vòng lặp do… while hoạt động như thế nào?

Phần code bên trong phần thân của cấu trúc do được thực hiện một lần (mà không đánh giá biểu thức kiểm tra testExpression). Sau đó, biểu thức kiểm tra được đánh giá.

Nếu biểu thức kiểm tra được trả về true, phần code bên trong phần thân của vòng lặp được thực hiện và biểu thức kiểm tra được đánh giá lại. Quá trình này diễn ra cho đến khi biểu thức kiểm tra trả về false.

Khi biểu thức kiểm tra được trả về false, vòng lặp do..while chấm dứt.

2.2. Sơ đồ của vòng lặp do… while 

Ví dụ: vòng lặp do… while trong Kotlin 

Chương trình dưới đây tính tổng các số được người dùng nhập cho đến khi người dùng nhập 0.

Để lấy input  từ người dùng, hàm readline() được sử dụng. Hãy đọc: Input cơ bản trong Kotlin.

fun main(args: Array<String>) {

    var sum: Int = 0
    var input: String

    do {
        print("Enter an integer: ")
        input = readLine()!!
        sum += input.toInt()

    } while (input != "0")

    println("sum = $sum")
}

Khi bạn chạy chương trình, kết quả sẽ là:

Enter an integer: 4
Enter an integer: 3
Enter an integer: 2
Enter an integer: -6
Enter an integer: 0
sum = 3