考虑以下未格式化的嵌套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;
}
答案 0 :(得分:25)
Java编程语言,如C和C ++以及它们之前的许多编程语言,任意地规定else子句属于它可能属于的最内层。
答案 1 :(得分:5)
第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语句中,没有括号会使错误非常常见
答案 2 :(得分:4)
答案 3 :(得分:0)
只需2美分,就能获得更好的视觉效果。
括号内的所有内容都将被完全忽略。
if (false) {
if (true)
System.out.println("1");
else
System.out.println("2");
}