Java中的multiway和嵌套if语句有什么区别?

时间:2014-11-24 20:30:11

标签: java if-statement

参加Java课程,有点困惑。多路if语句和嵌套if语句之间有什么区别?

2 个答案:

答案 0 :(得分:3)

说你有两个碗。

在多方'if'语句中,你只能吃掉其中一个。

 if ( choice.equals( "apples" )) {
     eatApples();
 }
 else if ( choice.equals( "oranges")) {
     eatOranges();
 }

在嵌套的'if'语句中,碗嵌套在一起。你可能会把外面的薯片吃掉,而可能将它们浸入中间的莎莎酱中。

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

答案 1 :(得分:1)

<强>摘要

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

<强>详细

一般来说,条件可以任意嵌套:

if (a) {
    stuff();
    if (b) {
        ...
    } else {
        ...
    }
} else {
    moreStuff();
    if (c) {
        ...
    } else {
        ...
    }
}

我们称之为“嵌套if”的确是这样:

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

和“multi-way if”就是这样:

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

(注意:C中没有else if构造。)