Cho đoạn mã sau:
1.public static void main(String[ ] args) {
2.float S = 0.0F;
3.int N=3,k;
4.for (k = 1; k <= N; k ++)
5.S += 1/sum(k);
6.System.out.print(S);
7.}
8.public static float sum(int k) {
9.float tong = 0;
10.for (int x = 1; x <= k; x ++)
11.tong +=tich(x);
12.return tong;
13.}
14.public float tich(int x) {
15.int t=1;
16.for (j = 1; j <= x; j ++)
17.t *= j;
18.return t;
19.}
Đoạn chương trình trên sai ở dòng nào?
=>=>=>
Trả lời:
Đáp án đúng: C
Đoạn chương trình trên có lỗi ở dòng 14 và 16.
* **Dòng 14:** `public float tich(int x)`
* Phương thức `tich` phải là `static` vì nó được gọi từ phương thức `sum` là một phương thức `static`. Trong Java, một phương thức `static` chỉ có thể gọi trực tiếp các phương thức `static` khác từ cùng một lớp.
* **Dòng 16:** `for (j = 1; j <= x; j ++)`
* Biến `j` chưa được khai báo trong phương thức `tich`. Cần khai báo biến `j` trước khi sử dụng, ví dụ: `for (int j = 1; j <= x; j++)`.
Do đó, đáp án đúng là C.14, 16





