在Java中,if
应该有{}
,除非if
下只有一行。
但是,为什么以下代码可以在我的计算机上运行?
int x=1;
int y=1;
if(x<=4)
if(y>=4)
System.out.println("%%%");
else
System.out.println("+++");
System.out.println("***");
以下是我在IDE上的样子:
一切都运行良好。这是结果(在它下面加载其他资源,不关心它。我只是修改了一些代码,尽快尝试代码。)
答案 0 :(得分:3)
Java会将else
与最后一个候选if
相关联。
您的代码(带括号)等于
if(x<=4) {
if(y>=4) {
System.out.println("%%%");
} else {
System.out.println("+++");
}
}
System.out.println("***");
当正好有1个语句(以分号结尾)或if
和if
之间的阻止时,匹配候选else
。
答案 1 :(得分:0)
谢谢大家,问题解决了。
关键是, if
执行下一个语句或阻止。
Java将以下代码视为一个完整的语句。
`if(y>=4)
System.out.println("%%%");
else
System.out.println("+++");`
它遵循第一个if
。
最后一次打印不属于考虑范围,只是由于压痕不良造成的。
答案 2 :(得分:-3)
这是你的代码
if(x<=4)
if(y>=4)
System.out.println("%%%");
else
System.out.println("+++");
System.out.println("***");
这是java的想法 if(布尔值)转到下一行 if(Boolean)ok这是false,转到else f