Trong bài viết này, bạn sẽ học cách sử dụng biểu thức break để chấm dứt một vòng lặp. Ngoài ra, bạn cũng sẽ tìm hiểu về các break label.

Giả sử bạn đang làm việc với các vòng lặp. Đôi khi, ta sẽ muốn chấm dứt vòng lặp ngay lập tức mà không cần kiểm tra biểu thức kiểm tra nữa.

Trong trường hợp như vậy, cần sử dụng biểu thức break. Nó chấm dứt vòng lặp gần nhất khi chương trình thực hiện đến đoạn có biểu thức break (mà không kiểm tra biểu thức kiểm tra). Điều này tương tự như cách biểu thức break hoạt động trong Java .

1. Biểu thức break hoạt động như thế nào?

Biểu thức break hầu như luôn được sử dụng cùng với cấu trúc if..else. Ví dụ,

for (...) {
    if (testExpression) {
        break
    }
}

Nếu biểu thức kiểm tra (testExpression) trả về giá trị true, biểu thức break được thực hiện vòng lặp for chấm dứt.

Ví dụ: biểu thức break trong Kotlin

/*
Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
@author cafedevn
Contact: cafedevn@gmail.com
Fanpage: https://www.facebook.com/cafedevn
Instagram: https://instagram.com/cafedevn
Twitter: https://twitter.com/CafedeVn
Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/
*/

fun main(args: Array<String>) {

    for (i in 1..10) {
        if (i == 5) {
            break
        }
        println(i)
    }
}

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

1
2
3
4

Khi giá trị của i bằng 5, biểu thức i == 5 bên trong if trả về true và biểu thức break được thực hiện. Điều này sẽ khiến vòng lặp for chấm dứt .

Ví dụ: Tính tổng cho đến khi người dùng nhập 0




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.

Truy cập Input và output cơ bản trong Kotlin để tìm hiểu thêm về cách lấy input từ người dùng.

/*
Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
@author cafedevn
Contact: cafedevn@gmail.com
Fanpage: https://www.facebook.com/cafedevn
Instagram: https://instagram.com/cafedevn
Twitter: https://twitter.com/CafedeVn
Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/
*/

fun main(args: Array<String>) {

    var sum = 0
    var number: Int

    while (true) {
        print("Enter a number: ")
        number = readLine()!!.toInt()

        if (number == 0)
            break

        sum += number
    }

    print("sum = $sum")
}

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

Enter a number: 4
Enter a number: 12
Enter a number: 6
Enter a number: -9
Enter a number: 0
sum = 13

Trong chương trình trên, biểu thức kiểm tra của vòng lặp while luôn luôn trả về giá trị true.

Ở đây, vòng lặp while được thực hiện cho đến khi người dùng nhập 0. Khi người dùng nhập 0, biểu thức break được thực hiện và nó sẽ chấm dứt vòng lặp while.

2. Biểu thức break có nhãn dán trong Kotlin

Những gì bạn đã đọc trong bài này cho đến bây giờ là hình thức không có nhãn dán của biểu thức break, chấm dứt vòng lặp kèm theo gần nhất. Ngoài ra, biểu thức break có thể được sử dụng (dưới hình thức có nhãn dán) để chấm dứt vòng lặp mà bạn muốn chấm dứt (có thể là vòng lặp bên ngoài).

3. Biểu thức break có nhãn dán hoạt động như thế nào?

Nhãn trong Kotlin bắt đầu bằng một mã định danh đừng đằng sau @.

Ở đây, test@ là một nhãn được đánh dấu ở vòng lặp while bên ngoài. Bây giờ, bằng cách sử dụng biểu thức break có một nhãn (cụ thể trong trường hợp này là break@test), bạn có thể phá vỡ vòng lặp được chỉ định.

Sau đây là một ví dụ:

fun main(args: Array<String>) {

    first@ for (i in 1..4) {

        second@ for (j in 1..2) {
            println("i = $i; j = $j")

            if (i == 2)
                break@first
        }
    }
}

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




i = 1; j = 1
i = 1; j = 2
i = 2; j = 1

Ở đây, khi i == 2 biểu thức trả về giá trị true, break@first được thực hiện và nó sẽ chấm dứt vòng lặp được đánh dấu bằng nhãn first@.

Sau đây là một biến thể nhỏ của chương trình trên.

Trong chương trình dưới đây, biểu thức break kết thúc vòng lặp được đánh dấu bằng nhãn @second.

fun main(args: Array<String>) {

    first@ for (i in 1..4) {

        second@ for (j in 1..2) {
            println("i = $i; j = $j")

            if (i == 2)
                break@second
        }
    }
}

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

i = 1; j = 1
i = 1; j = 2
i = 2; j = 1
i = 3; j = 1
i = 3; j = 2
i = 4; j = 1
i = 4; j = 2

Lưu ý: Vì biểu thức break được sử dụng để chấm dứt vòng lặp gần nhất của chương trình này, vậy nên không cần thiết phải sử dụng biểu thức break có nhãn trong trường hợp này.

Có 3 biểu thức nhảy cấu trúc trong Kotlin : break, continue và return. Để tìm hiểu về biểu thức continue và return, hãy truy cập:

  • Biểu thức trong Kotlin 
  • Biểu thức function trong Kotlin