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

Giả sử bạn đang làm việc với các vòng lặp. Đôi khi, bạn sẽ muốn bỏ qua lần lặp hiện tại của vòng lặp.

Trong trường hợp như vậy, cần sử dụng biểu thức continue. Cấu trúc continue bỏ qua lần lặp hiện tại của vòng lặp chứa lần lặp đó và điều khiển chương trình nhảy đến cuối phần thân của vòng lặp.

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

Nó hầu như luôn được sử dụng với cấu trúc if… else. Ví dụ,

while (testExpression1) {

    // codes1
    if (testExpression2) {
        continue
    }
    // codes2
}

Nếu biểu thức kiểm tra testExpression2 trả về giá trị true, biểu thức continue được thực hiện và nó sẽ bỏ qua tất cả các câu lệnh đứng sau nó bên trong vòng lặp while cho lần lặp đó.

Ví dụ: biểu thức continue 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..5) {
        println("$i Always printed.")
        if (i > 1 && i < 5) {
            continue
        }
        println("$i Not always printed.")
    }
}

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

1 Always printed.
1 Not always printed.
2 Always printed.
3 Always printed.
4 Always printed.
5 Always printed.
5 Not always printed.

Khi giá trị của i lớn hơn 1 và nhỏ hơn 5, biểu thức continue được thực hiện, nó sẽ không thực hiện câu lệnh:

println("$i Not always printed.")

Tuy nhiên, câu lệnh

println("$i Always printed.")

vẫn được thực hiện trong mỗi lần lặp của vòng lặp vì câu lệnh này tồn tại ở đằng trước cấu trúc continue .

Ví dụ: Chỉ tính tổng các số dương

Chương trình dưới đây tính tổng 6 số dương lớn nhất được nhập bởi người dùng. Nếu người dùng nhập số âm hoặc nhập 0, việc tính toán sẽ bị bỏ qua.

Truy cập Input và output cơ bản của 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 number: Int
    var sum = 0

    for (i in 1..6) {
        print("Enter an integer: ")
        number = readLine()!!.toInt()

        if (number <= 0)
            continue
        
        sum += number
    }
    println("sum = $sum")
}

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

Enter an integer: 4
Enter an integer: 5
Enter an integer: -50
Enter an integer: 10
Enter an integer: 0
Enter an integer: 12
sum = 31

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

Những gì bạn đã học từ đầu bài viết cho đến đây đều là hình thức không được gắn nhãn của biếu thức continue, tức là việc bỏ qua bước lặp hiện tại của vòng lặp gần nhất. Biểu thức continue cũng có thể được sử dụng để bỏ qua việc lặp lại vòng lặp mà bạn muốn bỏ qua (có thể là vòng lặp bên ngoài) bằng cách sử dụng biểu thức continue có nhãn dán.

3. Biểu thức continue 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, outerloop@ là một nhãn được đánh dấu ở vòng lặp while. Bây giờ, bằng cách sử dụng biểu thức continue có nhãn dán ( cụ thể trong trường hợp này là continue@outerloop), bạn có thể bỏ qua việc thực hiện đoạn code của vòng lặp cụ thể tương ứng với lần lặp đó.

Ví dụ: Biểu thức continue có nhãn dán 

fun main(args: Array<String>) {

    here@ for (i in 1..5) {
        for (j in 1..4) {
            if (i == 3 || j == 2)
                continue@here
            println("i = $i; j = $j")
        }
    }
}

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

i = 1; j = 1
i = 2; j = 1
i = 4; j = 1
i = 5; j = 1

Việc sử dụng biểu thức continue có nhãn dán thường không được khuyến khích vì nó làm cho code của trở nên khó hiểu hơn. Nếu bạn đang ở trong một tình huống mà phải sử dụng biểu thức continue có nhãn dán, hãy tái cấu trúc lại mã của bạn và cố gắng giải quyết nó theo một cách khác để làm cho nó dễ đọc và dễ hiểu hơn.

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

Đăng ký kênh youtube để ủng hộ Cafedev nha các bạn, Thanks you!