JavaScript is required

Kết quả in ra của đoạn mã trên là gì?
public class Delta {
static boolean foo(char c) {
System.out.print(c);
return true;
}
public static void main(String[] argv) {
int i = 0;
for (foo(‘A’);
foo(‘B’) && (i < 2); foo(‘C’)) {
i++;
foo(‘D’);
12.
}
}
}

A.
ABDCBDCB
B.
ABCDABCD
C.
Lỗi biên dịch
D.
Chương trình không lỗi, nhưng khi chạy sẽ sinh lỗi
Trả lời:

Đáp án đúng: A


Đoạn code trên minh họa cách vòng lặp `for` hoạt động trong Java, đặc biệt là thứ tự thực thi các phần của vòng lặp. 1. **Khởi tạo:** `foo('A')` được thực thi đầu tiên. In ra 'A'. 2. **Kiểm tra điều kiện:** `foo('B') && (i < 2)` được thực thi. In ra 'B'. Điều kiện `i < 2` (với `i = 0`) là đúng. Do đó, biểu thức `foo('B') && (i < 2)` trả về `true`. 3. **Thực thi thân vòng lặp:** - `i++` (i trở thành 1). - `foo('D')` được thực thi. In ra 'D'. 4. **Cập nhật:** `foo('C')` được thực thi. In ra 'C'. 5. **Kiểm tra điều kiện:** `foo('B') && (i < 2)` được thực thi. In ra 'B'. Điều kiện `i < 2` (với `i = 1`) là đúng. Do đó, biểu thức `foo('B') && (i < 2)` trả về `true`. 6. **Thực thi thân vòng lặp:** - `i++` (i trở thành 2). - `foo('D')` được thực thi. In ra 'D'. 7. **Cập nhật:** `foo('C')` được thực thi. In ra 'C'. 8. **Kiểm tra điều kiện:** `foo('B') && (i < 2)` được thực thi. In ra 'B'. Điều kiện `i < 2` (với `i = 2`) là sai. Do đó, biểu thức `foo('B') && (i < 2)` trả về `false`, vòng lặp kết thúc. Như vậy, kết quả in ra là: `ABDCBDCB`.

Câu hỏi liên quan