Java 无大括号的嵌套if-else行为

Java 无大括号的嵌套if-else行为,java,if-statement,syntax,Java,If Statement,Syntax,考虑以下未格式化的嵌套if-elseJava代码 if (condition 1) if (condition 2) action 1; else action 2; 我的问题是:根据Java语言规范,else分支是否适用 通过手动重新格式化和添加大括号,这两个选项中哪一个是正确的 第1区: if (condition 1) { if (condition 2) { action 1; } else action 2; } } 第2区:

考虑以下未格式化的嵌套
if-else
Java代码

if (condition 1)
if (condition 2)
action 1;
else
action 2;
我的问题是:根据Java语言规范,
else
分支是否适用

通过手动重新格式化和添加大括号,这两个选项中哪一个是正确的

第1区:

if (condition 1) {
    if (condition 2) {
        action 1;
    } else
        action 2;
    }
}
第2区:

if (condition 1) {
    if (condition 2) {
        action 1;
    }
}
else {
    action 2;
}

您可以尝试一下,发现
else
适用于内部
if


这是不这样编写代码的一个很好的理由。阅读和理解正在发生的事情非常困难。

在没有括号的if-else情况下,方框1是正确的 else链接到最近的if

if (condition 1)  
if (condition 2)
action 1;
else
action 2;

if (condition 1)
    if (condition 2)
    action 1;
    else
    action 2;
括号也是为了理解水平和方便。在较大的if-else语句中,没有括号会导致以下错误非常常见:

java编程语言,如C和C++,以及许多编程语言,任意地规定,如果另一个子句属于可能属于最内层的子句,则< /P>


为了更好的视觉表现,我只花了2美分

大括号内的所有内容都将被完全忽略

   if (false) {
        if (true)
            System.out.println("1");
        else
            System.out.println("2");
    }

你试过了吗?。。。你为什么要在没有大括号的情况下写这些呢?我们写程序是为了让人们理解,总是用大括号写if-else语句braces@all:请不要忘记,有时,出于学术目的,所以问题有时可能是理论性的。我同意大括号对于代码可读性至关重要,除了少数情况,但是询问Java的行为并不意味着我要写糟糕的代码(除非我想向codinghorror.com提交一个故事)@damo我相信在SO上创建知识对社区是积极的:如果另一个人有同样的问题,他不必查看Java文档,但可以通过谷歌搜索找到直接的答案(排名如此之高)