Tôi đã vượt qua câu đố này hôm nay. Rõ ràng, đây không phải là phong cách chính xác, nhưng tôi vẫn tò mò là tại sao không có đầu ra nào sắp ra mắt.Tại sao câu lệnh if của tôi hoạt động theo cách này?
int x = 9;
int y = 8;
int z = 7;
if (x > 9) if (y > 8) System.out.println("x > 9 and y > 8");
else if (z >= 7) System.out.println("SHOULD OUTPUT THIS x <= 9 and z >= 7");
else
System.out.println("x <= 9 and z < 7");
Ở trên không có đầu ra khi chạy. Nhưng, khi chúng ta thêm vào dấu ngoặc cho câu lệnh if, đột nhiên logic hoạt động như tôi mong đợi.
int x = 9;
int y = 8;
int z = 7;
if (x > 9) {
if (y > 8) System.out.println("x > 9 and y > 8");
}
else if (z >= 7) System.out.println("SHOULD OUTPUT THIS x <= 9 and z >= 7");
else
System.out.println("x <= 9 and z < 7");
Kết quả đầu ra này "NÊN OUTPUT NÀY x < = 9 và z> = 7". Chuyện gì đang xảy ra ở đây?
Cảm ơn!
haha ... 'else' áp dụng cho cấp lồng bên trong nhất. – Mysticial