JavaScript is required

Kết quả in ra của đoạn mã trên là gì?
int i = 1,
j = 10;
do {
if (i++>--j) {
continue;
}
} while ( i < 5 );
System.out.println("i = " + i + "and j = " + j);

A.
i = 6 and j = 6
B.
i = 5 and j = 5
C.
i = 6 and j = 5
D.
i = 5 and j = 6
Trả lời:

Đáp án đúng: D


Đoạn code sử dụng vòng lặp `do...while` và câu lệnh `if` với các toán tử tăng/giảm tiền tố và hậu tố. Ta sẽ theo dõi giá trị của `i` và `j` trong mỗi vòng lặp: - **Lần 1:** `i = 1`, `j = 10`. Điều kiện `i++ > --j` trở thành `1 > 9` (vì `i++` trả về giá trị hiện tại của `i` trước khi tăng, và `--j` giảm `j` trước khi so sánh). Điều kiện sai. `i` thành `2`, `j` thành `9`. - **Lần 2:** `i = 2`, `j = 9`. Điều kiện `i++ > --j` trở thành `2 > 8`. Điều kiện sai. `i` thành `3`, `j` thành `8`. - **Lần 3:** `i = 3`, `j = 8`. Điều kiện `i++ > --j` trở thành `3 > 7`. Điều kiện sai. `i` thành `4`, `j` thành `7`. - **Lần 4:** `i = 4`, `j = 7`. Điều kiện `i++ > --j` trở thành `4 > 6`. Điều kiện sai. `i` thành `5`, `j` thành `6`. Vòng lặp `while (i < 5)` kết thúc vì `i = 5`. Vậy, kết quả in ra là `i = 5 and j = 6`.

Câu hỏi liên quan