1.Câu lệnh break

Giả sử chúng ta đang viết một chương trình để tìm kiếm một số cụ thể trong 1000 số. Trong lần lặp đến lần thứ 10, chúng ta đã tìm được con số mong muốn. Lúc này ta không muốn duyệt 990 số còn lại mà thay vào đó ta mong muốn kết thúc việc duyệt ngay tại thời điểm số thứ 10 mà ta đã tìm thấy.

Khi đó ta có thể sử dụng từ khóa break để ngừng việc duyệt 990 số còn lại.

Để hiểu rõ hơn, cùng xét ví dụ dưới đây:

#include<stdio.h>
int main()
{
    int i;
    for(i = 1; i <= 1000 ; i++)
    {
        if(i==10)
        {
            break; // su dung break thoat khoi vong lap
        }
        printf("i = %d\n", i);
    }
    return 0;
}
i = 1

i = 2

i = 3

i = 4

i = 5

i = 6

i = 7

i = 8

i = 9

Nhận xét: Vòng lặp for duyệt từ 1 đến 1000, tuy nhiên tại thời điểm i = 10 có sự xuất hiện của câu lệnh break nên vòng lặp kết thúc ở đây và hoàn toàn không duyệt 990 số còn lại.

Nếu không có break vòng lặp trên sẽ chạy đủ và duyệt qua 1000 số sau đó mới dừng lại.

Ví dụ thứ 2 tôi sẽ sử dụng break trong vòng lặp lồng nhau:

Khi break câu lệnh được sử dụng bên trong một vòng lặp lồng nhau thì nó chỉ thực thiện thoát vòng lặp bên trong cùng.

#include<stdio.h>
int main()
{
    int i;
    for(i = 1; i <= 4 ; i++)
    {
        for(int j = 1; j <= 1000; j++){
            if(j==10){
                break; // su dung break thoat khoi vong lap thu 2
            }
            printf("j = %d\n", j);
        }
        printf("\n");
    }
    return 0;
}

Nhận xét: Khi j = 10 trong vòng lặp thứ 2 sẽ gặp phải câu lệnh break và nó sẽ kết thúc vòng lặp thứ 2 này. Tuy nhiên vòng lặp đầu tiên ở bên ngoài không có sự xuất hiện của break nên nó tiếp tục duyệt đủ số lần i <= 4 và như thế ta nhận được kết quả trên.

2.Câu lệnh continue

Câu lệnh continue được sử dụng để kết thúc sớm lần lặp hiện tại và chuyển sang lần lặp tiếp theo.

Khi câu lệnh continue gặp phải trong một vòng lặp, tất cả các câu lệnh sau câu lệnh continue bị bỏ qua và vòng lặp tiếp tục với lần lặp tiếp theo. Ta có thể sử dụng continue kết hợp với câu điều kiện.

Ví dụ dưới đây tôi sử dụng vòng lặp từ 0 đến 10 kiểm tra các số chia hết cho 2, nếu số đó chia hết cho 2 thì tiếp tục lặp (sử dụng continue)

#include<stdio.h>
int main()
{
    int i;
    for(i = 0; i <= 10; i++)
    {
        if( i % 2 == 0 )
        {
            //neu chia het cho 2 thi tiep tuc lap
            continue;
        }
        printf("%d\n", i);
    }
}
1

3

5

7

9

Nhận xét: Khi vòng lặp duyệt đến các số chia hết cho 2 nghĩa là các số: 0,2,4,6,8,10 khi đó sẽ bắt gặp câu lệnh continue do đó vòng lặp tiếp tục được thực hiện i++ trong vòng lặp và được chạy thêm một đơn vị phía sau nên kết quả nhận được sẽ là : 1, 3, 5, 7, 9

3.Sự khác nhau giữa break và continue

Đôi khi mọi người hay bị nhầm lẫn giữa câu lệnh break và câu lệnh continue.

Luôn nhớ rằng break là câu lệnh khi gặp phải sẽ thoát ra khỏi vòng lặp, nhưng khi câu lệnh continue gặp phải, vòng lặp không được kết thúc thay vào đó điều khiển được chuyển đến lần lặp tiếp theo.