Cho đoạn mã sau:
1: for(int i=0;i<2;i ++){
2: for(int j=0;j<3;j ++){
3: if(i==j ){
4: continue;
5: }
6: System.out.println("i="+i+" j="+j);
7: }
8: }
Dòng nào sẽ là một trong các kết quả được in ra?
3;j>2;i>
Trả lời:
Đáp án đúng: C
Đề bài yêu cầu tìm dòng output đúng từ đoạn code cho trước. Đoạn code bao gồm hai vòng lặp for lồng nhau. Vòng lặp ngoài chạy từ i = 0 đến i = 1. Vòng lặp trong chạy từ j = 0 đến j = 2. Bên trong vòng lặp trong, có một câu lệnh điều kiện if(i==j). Nếu i bằng j, lệnh continue được thực thi, bỏ qua phần còn lại của vòng lặp trong và chuyển đến lần lặp tiếp theo. Nếu i không bằng j, dòng System.out.println("i="+i+" j="+j) sẽ in ra giá trị của i và j.
Phân tích các đáp án:
- A. i = 0 j = 0: Khi i = 0 và j = 0, điều kiện i == j đúng, lệnh continue được thực thi, nên dòng này không được in ra.
- B. i = 2 j = 1: Giá trị i = 2 không nằm trong phạm vi của vòng lặp ngoài (i < 2), nên không có output nào có i = 2.
- C. i = 0 j = 2: Khi i = 0 và j = 2, điều kiện i == j sai, nên dòng System.out.println("i="+i+" j="+j) được thực thi và in ra "i=0 j=2".
- D. i = 1 j = 1: Khi i = 1 và j = 1, điều kiện i == j đúng, lệnh continue được thực thi, nên dòng này không được in ra.
Vậy đáp án đúng là C.