Java中多路和嵌套if语句的区别是什么?
以Java为例,有点困惑。多路if语句和嵌套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(
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”并不是魔术,他们应该编写有意义的逻辑,而不是把它硬塞进两个模型中。