在Java中,这被认为是"嵌套IF语句"的一个例子吗?

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

  • 感谢那里额外的"当然",好像对此有明确的共识(其他评论员不同意你) (3认同)

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)


dcp*_*dcp 7

嵌套if是这样的:

if (...)
  if (...)
    ...;
Run Code Online (Sandbox Code Playgroud)

你给出的第一个例子就是if/else.

记住它的一个好方法是缩进随着嵌套if而增加,但if/else事实并非如此.