JavaScript is required

Cho khối lệnh sau: for (int i = 0; i <= 10; i++) { int s = 0; s += i;} System.out.print(s); Sau khi chạy khối lệnh s = ?

A.

0

B.

55

C.

45

D.

Lệnh sai

Trả lời:

Đáp án đúng: B


Đề bài yêu cầu xác định giá trị của biến `s` sau khi đoạn code được thực thi. Đoạn code sử dụng vòng lặp `for` để duyệt các số từ 0 đến 10. Tuy nhiên, biến `s` được khai báo lại và gán giá trị 0 trong mỗi lần lặp của vòng lặp `for`. Do đó, sau mỗi lần lặp, giá trị của `s` sẽ được gán bằng `0 + i`, tức là `i`. Vì vậy, sau khi vòng lặp kết thúc, giá trị cuối cùng của `s` sẽ là giá trị của `i` ở lần lặp cuối cùng, tức là 10. Cuối cùng, `System.out.print(s)` sẽ in ra giá trị của `s`, tức là 10. Tuy nhiên, không có đáp án nào là 10. Điều này cho thấy đoạn code có một lỗi. Biến `s` được khai báo bên trong vòng lặp, nên nó sẽ được khởi tạo lại mỗi lần lặp, và phép cộng `s += i` chỉ có tác dụng trong lần lặp đó. Để `s` tích lũy tổng, nó phải được khai báo bên ngoài vòng lặp. Vì vậy, với đoạn code hiện tại, biến s luôn bằng 0 sau mỗi lần lặp, vì vậy đáp án đúng là A. 0.

Câu hỏi liên quan