Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java中多路和嵌套if语句的区别是什么?_Java_If Statement - Fatal编程技术网

Java中多路和嵌套if语句的区别是什么?

Java中多路和嵌套if语句的区别是什么?,java,if-statement,Java,If Statement,以Java为例,有点困惑。多路if语句和嵌套if语句之间的区别是什么?假设您有两个碗 在一个多方面的“如果”声明中,你只能吃其中一个 if ( choice.equals( "apples" )) { eatApples(); } else if ( choice.equals( "oranges")) { eatOranges(); } 在嵌套的“if”语句中,碗嵌套在一起。你可以吃外面的薯片,或者把它们蘸到中间的萨尔萨。 if ( choice.equals(

以Java为例,有点困惑。多路if语句和嵌套if语句之间的区别是什么?

假设您有两个碗

在一个多方面的“如果”声明中,你只能吃其中一个

 if ( choice.equals( "apples" )) {
     eatApples();
 }
 else if ( choice.equals( "oranges")) {
     eatOranges();
 }
在嵌套的“if”语句中,碗嵌套在一起。你可以吃外面的薯片,或者把它们蘸到中间的萨尔萨。

if ( choice.equals( "chips" )) {
   getChip();
   if ( dip.equals( "salsa")) {
      dipChipInSalsa();
   }
}

摘要

在语言层面上,没有根本的区别。有些人可能称之为“嵌套if”和“多路if”实际上只是嵌套
if
/
else
块的两种特定配置。它们当然不是唯一的选择,更不用说相互排斥了

细节

通常,条件可以任意深度嵌套:

if (a) {
    stuff();
    if (b) {
        ...
    } else {
        ...
    }
} else {
    moreStuff();
    if (c) {
        ...
    } else {
        ...
    }
}
我们称之为“嵌套的如果”实际上就是这样:

if (a) {
    // Blank!
    if (b) {
        ...
    } else {
        // Blank!
    }
} else {
    // Blank!
}
if (a) {
    ...
} else {
    // Blank!
    if (b) {
        ...
    } else {
        ...
    }
}
“多向如果”实际上就是这样:

if (a) {
    // Blank!
    if (b) {
        ...
    } else {
        // Blank!
    }
} else {
    // Blank!
}
if (a) {
    ...
} else {
    // Blank!
    if (b) {
        ...
    } else {
        ...
    }
}

(注意:C中没有
else,如果
construct。)

写一个两者的示例,然后在满足条件时尝试遵循逻辑。在一张纸上做这个。我明白了,所以这只是括号的位置?如果你在上课,那意味着有一个老师。你为什么不问问他/她?@brso05:
if(cond)A;否则B
相同,如果(!cond)B;否则A;因此,一个可以很容易地转换成另一个。这只是筑巢发生在哪里的问题,以及条件是否颠倒。没有根本的区别。从技术上讲,@OliverCharlesworth是正确的,如果你看看
if
语句的语法<代码>否则,如果
不是语法的一部分;
else
后面是另一条语句,该语句可以是一个块,也可以是另一条
(如果
)。这实际上只是我们如何看待它的问题。有些语言的情况并非如此(Ada、Perl),其中“else-if”部分的
if
部分在语法上不仅仅是一个嵌套语句。这非常有帮助。谢谢大家!@andybfmv96-不客气。欢迎来到stackoverflow。不要急于问更多的问题。尽管我认为这在技术上是正确的,但我认为对于新程序员来说,将两种
if
语句视为不同的语句可能更有用。否则,新的程序员很可能会把结构弄错。所以我认为Andy的答案是正确的,直到他们开始学习编译器构造,然后你的答案是正确的:):@ajb:我有点同意;)然而,我不认为编译器构造是前提;重要的是,新程序员要明白“else-if”并不是魔术,他们应该编写有意义的逻辑,而不是把它硬塞进两个模型中。