JavaScript is required

Output của chương trình sau đây là gì?

class main_class

{

public static void main(String args[])

{

int x = 9;

if (x == 9)

{

int x = 8;

System.out.println(x);

}

}

}

Chọn một:

A.

9

B.

8

C.

compilation error

D.

runtime error

Trả lời:

Đáp án đúng: C


Đoạn code Java này minh họa khái niệm về phạm vi biến (variable scope). Biến `x` được khai báo trong phương thức `main` có giá trị là 9. Sau đó, một khối `if` được tạo ra, và bên trong khối này, một biến `x` khác cũng được khai báo (int x = 8;). Biến `x` bên trong khối `if` này che phủ (shadow) biến `x` bên ngoài. Do đó, khi `System.out.println(x);` được gọi bên trong khối `if`, nó in ra giá trị của biến `x` được khai báo bên trong khối `if`, tức là 8. Sau khi khối `if` kết thúc, biến `x` bên trong khối không còn tồn tại, và biến `x` bên ngoài (với giá trị 9) vẫn giữ nguyên, nhưng câu lệnh `System.out.println(x)` đã được thực thi bên trong khối if. Như vậy, chương trình sẽ in ra 8.

Câu hỏi liên quan