swa*_*jak 6 java if-statement nested
在这里,我们有一个长期的假设,需要在脑海中清除.以下是嵌套'if'语句的示例:
if (...)
...;
else if (...)
...;
Run Code Online (Sandbox Code Playgroud)
我的印象是嵌套需要一个'if'在另一个'if'里面,就像这样:
if (...)
if (...)
...;
Run Code Online (Sandbox Code Playgroud)
当你在其他内部嵌套时,或至少明确区分范围,如下所示:
if (...)
...;
else { //if the next statement didn't
//exist, then the curly brace changes nothing?
...;
if (...)
...;
}
Run Code Online (Sandbox Code Playgroud)
这可以归结为编译器如何解释事物,是否将else-ifs中的'if'视为与父if的相同级别,或者它们是否创建"new"'if'语句.感谢您的时间!
编辑:我问,因为我是一个java实验室的TA,当天的主题是嵌套-ifs.最后,我发现老师认为我的第一个例子对"嵌套if语句"有效.
Jer*_*myP 20
当然它是嵌套的.嵌套与格式化代码的方式无关.
if (...)
{
// some code
}
else if (...)
{
// some code
}
else
{
// some code
}
Run Code Online (Sandbox Code Playgroud)
完全等同于
if (...)
{
// some code
}
else
{
if (...)
{
// some code
}
else
{
// some code
}
}
Run Code Online (Sandbox Code Playgroud)
Java中没有'else if'关键字,这种效果纯粹是通过一种格式化约定来实现的,该约定可以阻止嵌套的长链在屏幕上漂移.
如果有人需要说服,这里是if语句的规范: Java语言规范部分14.9
Bal*_*usC 12
这是一个if语句:
if (condition1) {
// ...
}
Run Code Online (Sandbox Code Playgroud)
这是一个嵌套的if语句:
if (condition1) {
// ...
if (condition2) {
// ...
}
// ...
}
Run Code Online (Sandbox Code Playgroud)
这是一个if-else语句:
if (condition1) {
// ...
} else {
// ...
}
Run Code Online (Sandbox Code Playgroud)
这是一个链式if-else语句:
if (condition1) {
// ...
} else if (condition2) {
// ...
}
Run Code Online (Sandbox Code Playgroud)
嵌套if是这样的:
if (...)
if (...)
...;
Run Code Online (Sandbox Code Playgroud)
你给出的第一个例子就是if/else.
记住它的一个好方法是缩进随着嵌套if而增加,但if/else事实并非如此.