JavaScript is required

Khối lệnh thực hiện chuyện gì?
int[] mang = new int[10]
int s = 0;
int j = 0;
for (int i: mang) {
i = ++j;
s += i;
}
System.out.println(“S = “ + s);

A.
Nhập dữ liệu cho mang nguyên.
B.
Tính tổng mảng nguyên.
C.
Nhập dữ liệu và tính tổng mảng nguyên.
D.
Tất cả đều sai.
Trả lời:

Đáp án đúng: C


Đoạn code khởi tạo một mảng `mang` gồm 10 phần tử kiểu `int`. Sau đó, nó sử dụng vòng lặp `for-each` để duyệt qua mảng. Tuy nhiên, có một điểm quan trọng là trong vòng lặp, giá trị của `i` (biến lặp) được gán bằng `++j`. Biến `j` được tăng lên 1 trước khi gán cho `i`. Giá trị của `i` chỉ thay đổi trong phạm vi vòng lặp, không ảnh hưởng đến giá trị thực tế của các phần tử trong mảng `mang`. Biến `s` được dùng để tính tổng các giá trị của `i` trong mỗi lần lặp. Vì vậy, đoạn code này tính tổng các số từ 1 đến 10, chứ không phải tính tổng các phần tử của mảng `mang` (vì các phần tử của mảng không bị thay đổi). * **Khởi tạo mảng:** `int[] mang = new int[10]` tạo một mảng gồm 10 số nguyên, tất cả đều có giá trị mặc định là 0. * **Khởi tạo biến:** `int s = 0;` và `int j = 0;` khởi tạo biến `s` để lưu tổng và biến `j` để đếm. * **Vòng lặp:** `for (int i: mang)` lặp qua từng phần tử của mảng `mang`. Tuy nhiên, việc gán `i = ++j;` chỉ thay đổi giá trị của biến `i` trong vòng lặp, chứ không thay đổi giá trị của phần tử trong mảng `mang`. Giá trị của `j` tăng lên mỗi lần lặp, và giá trị này được cộng vào `s`. * **Tính tổng:** `s += i;` cộng giá trị hiện tại của `i` (là giá trị của `j` sau khi tăng) vào `s`. * **In kết quả:** `System.out.println("S = " + s);` in ra giá trị của `s`, là tổng các số từ 1 đến 10. Vì vậy, đáp án chính xác nhất là **B. Tính tổng mảng nguyên** một cách gián tiếp thông qua biến j. Mảng các phần tử vẫn có giá trị mặc định là 0.

Câu hỏi liên quan