2015-09-06 45 views
0

如果switch語句存在,if-else語句的意義何在?真的有一個實際的理由讓他們倆?看起來有點多餘。我想知道的是,對於某種情況下其他方式不起作用的其中一個或另一個必要條件是什麼?如果是這樣的話。如果您可以使用if-else語句,那麼switch語句的要點是什麼?

+0

無處不在''switch'聲明工作,'if'也可以。我認爲主要原因是你的代碼的可讀性。 – Sirko

+2

http://stackoverflow.com/questions/680656/what-is-the-difference-between-if-else-and-switch可能重複的問題。 – jewelhuq

+0

http://stackoverflow.com/a/680664/4206206 –

回答

0

Switch陳述可以被認爲是專門的if陳述。任何可以使用switch的地方也可以使用if;然而,switch通常會更具可讀性。

此外,更重要的是,在我看來,在大多數編譯語言中,switch會比if/else更快,因爲編譯器會生成跳轉表。因爲每種可能性都會有相同的訪問時間,而在if-else語句中,列表中的最後一項將比第一項花費更長的時間。列表越長,性能優勢就越重要。這就是說,一般來說,只有極少數情況下,這種差異會特別明顯或重要。

+0

所以基本上它對專門的工作負荷有用嗎?還有什麼條件,只有和只有交換機可以工作?我知道有些時候只有if-else可以工作,並且switch不能換成布爾運算符,但是它可以反過來工作嗎? if-else是否適合開關,開關適合if-else還是兩者? – Harsh

+0

是的,你可以這樣想。大多數情況下,交換機可以使用它將比if-else更具可讀性,並且不會產生太多影響。沒有地方開關將工作,如果 - 否則不會。 – GentlemanMax