2014-11-24 81 views
-3

以Java爲例,有點困惑。多路if語句和嵌套if語句之間有什麼區別?Java中的multiway和嵌套if語句之間有什麼區別?

+10

收件兩者的一個例子,然後嘗試遵循所述邏輯當滿足的條件。在一張紙上做這件事。 – 2014-11-24 20:31:02

+0

我明白了,所以它只是放置括號? – andybfmv96 2014-11-24 20:34:58

+0

如果你正在上課,那就意味着有一位老師。你爲什麼不問他/她? – 2014-11-24 20:37:24

回答

3

假設你有兩個碗。

在多方式'if'聲明中,您只能從其中一箇中吃掉。

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

在嵌套'if'語句中,碗被嵌套在一起。你可以把外面的芯片吃掉,也許將它們浸入中間的莎莎。

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

這非常有幫助。謝謝! – andybfmv96 2014-11-24 20:58:43

+0

@ andybfmv96 - 不客氣。歡迎來到stackoverflow。不要猶豫,要問更多問題。一定要參觀http://stackoverflow.com/tour。 – 2014-11-24 21:07:03

1

摘要

在語言級別,沒有根本的區別。有些人可能會稱之爲「嵌套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 { 
     ... 
    } 
} 

(注意:有在C.沒有else if構建體)

+0

雖然我認爲這在技術上是正確的,但我認爲它可能對於新程序員將兩種'if'語句視爲不同而更有用。否則,一個新的程序員可能會把結構全部弄錯。所以我認爲Andy的答案是正確的,直到他們開始學習編譯器構建,然後你的答案是正確的:) :) – ajb 2014-11-24 21:01:59

+0

@ajb:我有點同意;)但是,我不認爲編譯器構建是先決條件;新程序員理解「其他如果」不是魔術,並且他們應該編寫有意義的邏輯非常重要,而不是將其鎖定到兩個模型中。 – 2014-11-24 21:03:16

相關問題