【发布时间】:2015-03-10 05:16:34
【问题描述】:
考虑到我已经有大约 2 年的编程经验,这可能是一个非常初学者的问题,但是嵌套的 IF 条件语句以及它们如何在没有花括号的情况下工作时总是困扰着我。
我一直使用大括号来保持我的编码井井有条。比如这样。
public static void main(String[] args)
{
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("x <= 9 and z >= 7");
}
else
{
System.out.println("x <= 9 and z < 7");
}
}
我一直使用这种模式,因为它一直对我有用。
但是,为什么以这种格式编写的东西不能以同样的方式工作?
public static void main(String[] args)
{
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("x <= 9 and z >= 7");
else
System.out.println("x <= 9 and z < 7");
}
第一个代码会打印出 x = 7,但第二个代码不会打印任何内容。 (我假设 else if 和 else 语句在初始 if 语句中)。
换句话说,当没有像上面的例子那样出现大括号时,编译器如何测试条件语句的规则是什么?我尝试在网上查找信息,但我似乎无法找到信息和/或我不知道如何专门调用此问题以研究我的疑问。
【问题讨论】:
-
使用花括号是个好主意。
-
如果没有大括号,则基于第一个
;.. -
@user1354678 - 愿意发布支持您评论的答案吗?