What is the output of the following code?

4 phương ánCó giải thích
Đề bài
for (int i = 0; i < 5; i++) {
    if (i == 2) continue;
    printf("%d ", i);
}

Các phương án trả lời

Chọn một phương án
Lời giảiChọn phương án để mở
Đáp án đúng: "0 1 3 4". Lệnh continue không thoát vòng lặp, nó chỉ bỏ phần thân còn lại của lượt đang chạy rồi nhảy tới bước cập nhật và kiểm tra điều kiện. Với i bằng 0 và 1 thì điều kiện trong không thoả nên printf chạy; tới i bằng 2, continue cắt ngang trước printf nên số 2 không được in, nhưng i vẫn tăng bình thường; các lượt i bằng 3 và 4 lại in như thường. Lựa chọn "0 1 2 3 4" là kết quả nếu bỏ hẳn câu điều kiện, tức không bỏ qua lượt nào. Lựa chọn "0 1" là kết quả nếu dùng break, vì break mới kết thúc cả vòng lặp tại i bằng 2. Lựa chọn "2 3 4" làm ngược lại ý nghĩa của câu điều kiện, như thể chỉ bắt đầu in từ lúc i đạt 2.

Cùng phần 3

Xuất hiện trong 1 bộ đề