Lỗi vòng lặp bỏ qua câu lệnh cin trong c++ năm 2024

Câu lệnh break trong C là một câu lệnh điều khiển vòng lặp được sử dụng để chấm dứt vòng lặp. Ngay khi gặp câu lệnh break từ bên trong một vòng lặp, các vòng lặp sẽ dừng ngay ở đó và chương trình sẽ tiếp tục chạy đến câu lệnh tiếp theo sau vòng lặp.

Về cơ bản các câu lệnh break thường được sử dụng trong các tình huống khi chúng ta không chắc chắn về số lần lặp thực tế cho vòng lặp hoặc chúng ta muốn chấm dứt vòng lặp dựa trên một số điều kiện.

Cú pháp câu lệnh break trong C

break;

Câu lệnh break thường được sử dụng với câu lệnh

# include 
int main() {
    double n, sum = 0;
    for (int i = 1; i <= 10; ++i) {
        printf("Enter a n%d: ",i);
        scanf("%lf", &n);
        // If the user enters a negative number, the loop ends
        if(n < 0) {
            break;
        }
        sum += n;
    }
    printf("\nsum = %.2lf", sum);
}

0 bên trong vòng lặp.

Cách câu lệnh break hoạt động trong C

Vòng lặp for trong C

Lỗi vòng lặp bỏ qua câu lệnh cin trong c++ năm 2024

Vòng lặp do-while trong C

Lỗi vòng lặp bỏ qua câu lệnh cin trong c++ năm 2024

Vòng lặp while trong C

Lỗi vòng lặp bỏ qua câu lệnh cin trong c++ năm 2024

Luồng hoạt động câu lệnh break trong C

Lỗi vòng lặp bỏ qua câu lệnh cin trong c++ năm 2024

Ví dụ về câu lệnh break trong C

Chúng ta sẽ cùng xem qua cách sử dụng lệnh break với ba loại vòng lặp:

  • Vòng lặp đơn giản - Simple loops
  • Vòng lặp lồng nhau - Nested loops
  • Vòng lặp vô hạn - Infinite loops

Bây giờ chúng ta sẽ đi xem xét chi tiết các ví dụ cho từng loại trong ba loại vòng lặp trên.

Một cấu trúc lặp đơn giản

Ví dụ:

Chương trình tính tổng tối đa 10 số. Nếu nhập vào một số âm, vòng lặp chấm dứt và tính tổng các số được nhập vào trước đó.

# include 
int main() {
    double n, sum = 0;
    for (int i = 1; i <= 10; ++i) {
        printf("Enter a n%d: ",i);
        scanf("%lf", &n);
        // If the user enters a negative number, the loop ends
        if(n < 0) {
            break;
        }
        sum += n;
    }
    printf("\nsum = %.2lf", sum);
}

Kết quả

Enter a n1: 4 Enter a n2: 5 Enter a n3: 8 Enter a n4: -2

sum = 17.00

Chương trình này tính tổng của tối đa 10 số. Nhưng vì sao mới nhập 3 số dương và 1 số âm nó đã dừng lại và tính tổng? Đó là bởi vì nếu người dùng nhập số âm, câu lệnh break được thực thi. Điều này sẽ kết thúc vòng lặp

# include 
int main() {
    double n, sum = 0;
    for (int i = 1; i <= 10; ++i) {
        printf("Enter a n%d: ",i);
        scanf("%lf", &n);
        // If the user enters a negative number, the loop ends
        if(n < 0) {
            break;
        }
        sum += n;
    }
    printf("\nsum = %.2lf", sum);
}

3, tổng được tính và hiển thị.

Sử dụng break trong trường hợp vòng lặp lồng nhau

Chúng ta cũng có thể sử dụng lệnh break trong khi làm việc với các vòng lặp lồng nhau. Nếu câu lệnh break được sử dụng trong vòng lặp nào, nó sẽ chỉ chấm dứt vòng lặp đó.

Ví dụ:

In ra hình chữ nhật.

# include 
int main() {
    for (int i = 0; i < 3; i++) {
        for (int j = 0; j < 6; j++) {
            printf("* ");
        }
        printf("\n");
    }
}

Chúng ta có thể thấy vòng

# include 
int main() {
    double n, sum = 0;
    for (int i = 1; i <= 10; ++i) {
        printf("Enter a n%d: ",i);
        scanf("%lf", &n);
        // If the user enters a negative number, the loop ends
        if(n < 0) {
            break;
        }
        sum += n;
    }
    printf("\nsum = %.2lf", sum);
}

6 (

# include 
int main() {
    double n, sum = 0;
    for (int i = 1; i <= 10; ++i) {
        printf("Enter a n%d: ",i);
        scanf("%lf", &n);
        // If the user enters a negative number, the loop ends
        if(n < 0) {
            break;
        }
        sum += n;
    }
    printf("\nsum = %.2lf", sum);
}

3 bên ngoài) sẽ chạy 3 lần (từ

# include 
int main() {
    double n, sum = 0;
    for (int i = 1; i <= 10; ++i) {
        printf("Enter a n%d: ",i);
        scanf("%lf", &n);
        // If the user enters a negative number, the loop ends
        if(n < 0) {
            break;
        }
        sum += n;
    }
    printf("\nsum = %.2lf", sum);
}

8 →

# include 
int main() {
    double n, sum = 0;
    for (int i = 1; i <= 10; ++i) {
        printf("Enter a n%d: ",i);
        scanf("%lf", &n);
        // If the user enters a negative number, the loop ends
        if(n < 0) {
            break;
        }
        sum += n;
    }
    printf("\nsum = %.2lf", sum);
}

9). Vòng

# include 
int main() {
    for (int i = 0; i < 3; i++) {
        for (int j = 0; j < 6; j++) {
            printf("* ");
        }
        printf("\n");
    }
}

0 (

# include 
int main() {
    double n, sum = 0;
    for (int i = 1; i <= 10; ++i) {
        printf("Enter a n%d: ",i);
        scanf("%lf", &n);
        // If the user enters a negative number, the loop ends
        if(n < 0) {
            break;
        }
        sum += n;
    }
    printf("\nsum = %.2lf", sum);
}

3 bên trong) sẽ chạy 6 lần (từ

# include 
int main() {
    double n, sum = 0;
    for (int i = 1; i <= 10; ++i) {
        printf("Enter a n%d: ",i);
        scanf("%lf", &n);
        // If the user enters a negative number, the loop ends
        if(n < 0) {
            break;
        }
        sum += n;
    }
    printf("\nsum = %.2lf", sum);
}

8 →

# include 
int main() {
    for (int i = 0; i < 3; i++) {
        for (int j = 0; j < 6; j++) {
            printf("* ");
        }
        printf("\n");
    }
}

3).

Bây giờ chúng ta muốn vòng

# include 
int main() {
    for (int i = 0; i < 3; i++) {
        for (int j = 0; j < 6; j++) {
            printf("* ");
        }
        printf("\n");
    }
}

0 chỉ chạy 3 lần để In ra hình vuông, chúng ta sẽ kiểm tra điều kiện cho

# include 
int main() {
    for (int i = 0; i < 3; i++) {
        for (int j = 0; j < 6; j++) {
            printf("* ");
        }
        printf("\n");
    }
}

5 và break như sau:

# include 
int main() {
    for (int i = 0; i < 3; i++) {
        for (int j = 0; j < 6; j++) {
            if (j > 2) {
                break;
            } else {
                printf("* ");
            }
        }
        printf("\n");
    }
}

Bạn có thể thấy vòng

# include 
int main() {
    double n, sum = 0;
    for (int i = 1; i <= 10; ++i) {
        printf("Enter a n%d: ",i);
        scanf("%lf", &n);
        // If the user enters a negative number, the loop ends
        if(n < 0) {
            break;
        }
        sum += n;
    }
    printf("\nsum = %.2lf", sum);
}

6 vẫn chạy 3 lần, break chỉ kết thúc vòng

# include 
int main() {
    for (int i = 0; i < 3; i++) {
        for (int j = 0; j < 6; j++) {
            printf("* ");
        }
        printf("\n");
    }
}

0, nơi nó được viết mã khi thoã màn câu lệnh

# include 
int main() {
    double n, sum = 0;
    for (int i = 1; i <= 10; ++i) {
        printf("Enter a n%d: ",i);
        scanf("%lf", &n);
        // If the user enters a negative number, the loop ends
        if(n < 0) {
            break;
        }
        sum += n;
    }
    printf("\nsum = %.2lf", sum);
}

0.

Sử dụng câu lệnh break cho vòng lặp vô tận

Hãy xem xét vòng lặp vô hạn dưới đây:


# include 
int main() {
    int i = 0;
    while (1) {
        printf("%d\n", i);
        i++;
    }
}

Lưu ý

Không chạy chương trình trên vì đây là một vòng lặp vô hạn, nó sẽ chạy mãi không dừng - bạn chỉ có thể dừng nó bằng cách tắt cửa sổ terminal đi.

Trong chương trình trên, điều kiện trong vòng lặp là

# include 
int main() {
    for (int i = 0; i < 3; i++) {
        for (int j = 0; j < 6; j++) {
            if (j > 2) {
                break;
            } else {
                printf("* ");
            }
        }
        printf("\n");
    }
}

1 - có nghĩa là luôn luôn đúng. Vì vậy, vòng lặp thực hiện vô số lần hay còn gọi là vòng lặp vô hạn. Chúng ta có thể sửa lỗi này bằng cách sử dụng câu lệnh break như sau: