2014-03-24 55 views
-3
if (condition_1) 
    do_1;           
else if (condition_2) 
    do_2; 
else 
    do_default; 

我明白這一點。如果多個條件返回true,會發生什麼? java在第一個真實條件之後停止還是需要休息?你是否需要在if語句中斷?

+10

它只會執行一個或沒有這些塊。順便說一句,爲什麼你不能執行它並看到結果? –

+2

請使用大括號,即'if(condition_1){0} {0} {0} } else if(condition_2){ do_2; } else { do_default; }' –

+0

@如果語句只有1件雜事,則不需要帽子括號的Guy。 (1個方法調用,1個變量初始化等) –

回答

0

你不需要多次休息。如果第一種情況爲真,則執行該代碼並跳過其他部分。對於其他情況也是如此。所以else被執行的唯一時間是在if和else條件評估爲false之後。

1

它將按順序評估布爾值,並且只運行第一個爲真的塊。這就是爲什麼語法使用「else」這個詞。

如果使用switch/case語法的語法if/else,需要中斷,您可能會感到困惑。

+0

是的,如果你在第二個'if'之前排除了'else'語句,那麼你將得到一個完全不同的控制流 - 你會做第二個'if'測試,不管第一個結果如何。但是在這種情況下通常不允許使用「break」 - 使用「else」。 –

0

Java將執行滿足條件並會退出塊的第一個if條件(在if-else if塊中)。如果沒有條件滿足要求,最後的else語句將被執行。如果沒有else語句,則不會執行任何語句。

0

break僅用於switch語句和循環。如果發現條件,則不會觸發一串if-else語句。如果你想檢查所有條件,只是不要把else

3

請看看如果否則,如果流程圖

enter image description here

+1

您應該明確注意「假」腿是「其他」腿。否則,優秀的圖形! –

+1

好吧,我看着它。怎麼辦? –

0

你可以有多個條件返回true,如果你有「水貨」 IFS:

if (cond) { 
    ... 
} 

if (cond) { 
    ... 
} 

這是合適的時候,他們不是相互獨家。

關於你的問題,爲什麼不直接執行代碼並自己看看?