我在嘗試處理特殊情況時使用switch語句時出現問題。 例如, 我有3個的情況:A,B,C.Java開關語句
- 爲A,我想要做statement_1和statement_3。
- for B,我想做statement_2和statement_3。
- 爲C,我想如果我使用if-else語句,它看起來像什麼也不做,
如下:
if (not C){
do statement_3
if B
do statement 2
else if A
do statement 1
}
如果我想使用switch語句做同樣的事情,我有一些麻煩。
switch (variable){
case A: do statement_1
case B: do statement_2
// how to do statement 3 here?
}
我試圖避免重複的代碼。所以我在想如何讓代碼儘可能簡單。
更新1:
,使我的代碼/問題更清楚,我只想讓我的代碼 簡單/清楚,我可以,這就是爲什麼我要使用switch語句 而不是if-else。另外,我聽說開關語句通常比if-else更快,比 快。 (雖然我不是100%肯定)。
我想使用開關櫃,因爲情況A,B,C是枚舉類型。他們 是不可變的。對此感到抱歉。
每個語句都超過10行代碼。這就是爲什麼我不想做如下:
switch (enum variable) { case A: statement1 statement3 break; case B: statement2 statement3 break;
}
此代碼不起作用,因爲Java 6和更早版本需要基本類型的值。 Java 7可以用Strings來處理。 – reporter
切換不好 - 你不能跳過案例,這是你必須做的,以避免編碼調用statement_3兩次 – Bohemian
「if」有什麼問題?如果開關不是正確的工具,請不要使用它。大多數時候,這不是正確的工具。 –