CodeGym /Các khóa học /JAVA 25 SELF /Điều khiển vòng lặp: câu lệnh break và continue

Điều khiển vòng lặp: câu lệnh break và continue

JAVA 25 SELF
Mức độ , Bài học
Có sẵn

1. Giới thiệu

Rất thường xuyên, bạn không cần chạy hết tất cả các vòng lặp mà cần thoát sớm — ví dụ, ngay khi đã tìm thấy phần tử mong muốn. Ở các trường hợp khác, bạn cần bỏ qua một phần công việc và chuyển sang bước tiếp theo (chẳng hạn bạn đã đọc dữ liệu và muốn bỏ qua việc xử lý chúng). Đó chính là điều khiển luồng bên trong vòng lặp.

Các câu lệnh breakcontinue trong Java được dùng chính xác cho mục đích này. Hãy cùng tìm hiểu cách chúng hoạt động và khi nào hữu ích trong các bài toán thực tế.

2. Câu lệnh break: “Dừng lại!”

Lý thuyết và cú pháp

Câu lệnh break được dùng để thoát ngay lập tức khỏi vòng lặp, bất kể bạn đang ở đâu trong thân vòng lặp. Ngay khi chương trình chạy đến break, vòng lặp sẽ kết thúc ngay và việc thực thi tiếp tục từ dòng đầu tiên sau vòng lặp.


while (uslovie)
{
    if (kakoe-to_uslovie)
    {
        break;
    }
    // phần mã còn lại của vòng lặp
}
Sử dụng break trong vòng lặp while

Điều tương tự áp dụng cho fordo-while:

for (int i = 0; i < 10; i++)
{
    if (kakoe-to_uslovie)
    {
        break;
    }
    // phần mã còn lại của vòng lặp
}

Ví dụ 1: kiểm tra số nguyên tố

Một số là số nguyên tố nếu nó chỉ chia hết cho 1 và chính nó. Ta cần kiểm tra một số có phải nguyên tố hay không: duyệt qua tất cả các ước tiềm năng từ 2 đến n-1. Nếu phát hiện số của ta chia hết cho một ước, thì không cần kiểm tra tiếp nữa — số đó không phải nguyên tố! Có thể kết thúc vòng lặp.

Ví dụ:

int number = 111;
boolean found = false;
for (int i = 2; i < number; i++)
{
    if (number % i == 0)
    {
        found = true;
        System.out.println("Đã tìm thấy ước số " + i );
        break; // Dừng vòng lặp, không cần tìm gì thêm nữa!                
    }    
}

if (!found)
{
    System.out.println("Không tìm thấy ước số - đây là số nguyên tố.");
}

Ví dụ 2: xác thực đầu vào của người dùng

Hãy viết một ứng dụng nhỏ, ví dụ như một biểu mẫu tương tác để thu thập dữ liệu:

while (true)
{
    System.out.print("Nhập tuổi của bạn: ");

    if (console.hasNextInt())
    {
        int age = console.nextInt();
        if (age > 0)
        {
            System.out.println("Tuyệt vời! Tuổi của bạn: " + age);
            break; // dữ liệu hợp lệ — thoát
        }
        else
        {
            System.out.println("Lỗi! Hãy nhập số tuổi lớn hơn 0.");
        }
    }
    else
    {
        System.out.println("Lỗi! Hãy nhập một số.");
        console.nextLine(); // nuốt phần nhập không hợp lệ
    }
}

Tại sao cần điều này:
Đôi khi cần chạy vòng lặp vô hạn (hoặc rất lâu) cho đến khi người dùng nhập dữ liệu hợp lệ. Ngay khi xảy ra sự kiện mà ta mong muốn — hãy dùng break để thoát hẳn khỏi vòng lặp.

3. Câu lệnh continue: “Người tiếp theo, xin mời!”

Lý thuyết và cú pháp

Khác với break, câu lệnh continue không kết thúc toàn bộ vòng lặp mà chỉ ngắt iteration hiện tại: mọi thứ viết sau continue trong thân vòng lặp sẽ KHÔNG được thực thi — chương trình chuyển sang iteration tiếp theo.


for (int i = 0; i < 10; i++)
{
    if (uslovie)
    {
        continue;
    }
    // phần này chỉ chạy nếu continue không kích hoạt
}
Sử dụng continue trong vòng lặp for

Ví dụ 3: bỏ qua số chẵn

Giả sử bạn cần in ra chỉ các số lẻ trong một khoảng. Các số chẵn cần được bỏ qua.


for (int i = 1; i <= 10; i++)
{
    if (i % 2 == 0)
    {
        continue; // nếu số là số chẵn — bỏ qua tất cả những gì bên dưới!
    }
    System.out.println("Số lẻ: " + i);
}
Bỏ qua số chẵn bằng continue

Điều gì xảy ra:
Khi i = 2, 4, 6... vòng lặp gặp continue và lập tức nhảy sang iteration tiếp theo, không thực thi System.out.println.

Minh họa hoạt động theo từng bước:

i i % 2 == 0 Hành động
1 false print, không có continue
2 true continue, không có print
3 false print, không có continue
... ... ...

Các câu lệnh breakcontinue được sử dụng rất thường xuyên. Bạn sẽ thấy thích khi làm việc với chúng.

Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION