不带括号的嵌套if-else行为

问题描述 投票:16回答:4

考虑以下未格式化的嵌套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;
}
java if-statement syntax
4个回答
26
投票

documentation

[Java编程语言,如C和C ++及其之前的许多编程语言,任意决定了else子句可能属于最内部的子句。


5
投票

第1块是正确的,否则,如果没有括号,如果

,则其他链接到最近的链接
if (condition 1)  
if (condition 2)
action 1;
else
action 2;

与]相同>

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

括号也是为了便于理解和方便。在更大的if else语句中,没有方括号会使错误非常普遍


4
投票

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


0
投票

为了更好的视觉表现,我付了2美分。

© www.soinside.com 2019 - 2024. All rights reserved.