嵌套的if-else行为没有大括号
请考虑以下未格式化的嵌套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编程语言,如C和C ++以及它们之前的许多编程语言,任意地规定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语句中,没有括号会使错误非常常见