Java编译器和其他编译器如何处理以下场景; 哪里有嵌套if没有大括号?
// In Java, to which of the 'if's does this 'else' belong?
// If bOne=false and bTwo=true, will the println run?
boolean bOne = false;
boolean bTwo = true;
if (bOne)
if (bTwo)
bTwo = bTwo; // do nothing
else
System.out.println("bOne:" + bOne + ". bTwo:" + bTwo);
Run Code Online (Sandbox Code Playgroud)
该else条款适用于第二个if语句.首先,它应该被理解为:
if (bOne)
if (bTwo)
bTwo = bTwo; // do nothing
else
System.out.println("bOne:" + bOne + ". bTwo:" + bTwo);
Run Code Online (Sandbox Code Playgroud)
然后应该重写代码以使用花括号.
这适用于许多命令式编程语言,一个值得注意的例外是Python,它具有显着的缩进而不是花括号.
| 归档时间: |
|
| 查看次数: |
90 次 |
| 最近记录: |