为什么我的Java代码可以运行?

时间:2016-11-10 00:30:24

标签: java

在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上的样子:

一切都运行良好。这是结果(在它下面加载其他资源,不关心它。我只是修改了一些代码,尽快尝试代码。)

3 个答案:

答案 0 :(得分:3)

Java会将else与最后一个候选if相关联。 您的代码(带括号)等于

if(x<=4) {
    if(y>=4) {
        System.out.println("%%%");
    } else {
        System.out.println("+++");
    }
}
System.out.println("***");

当正好有1个语句(以分号结尾)或ifif之间的阻止时,匹配候选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

相关问题