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:
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.