問題闡述
通常情況下,switch 語句比一系列嵌套的 if 語句更有效,那么是否可以用 switch 分支語句代替 if 條件語句呢?
在實際編程過程中,并不是所有的 if 條件語句都可以用 switch 分支語句代替。由于switch 語句的表達式只能測試 byte、short、int 或 char 類型的相等情況,而 if 語句可以計算任何類型的布爾表達式,所以對于判斷非相等情況時,就不能用 switch 語句代替 if 語句。
例如,下面的用于比較兩個變量大小的 if 語句,就不能使用 switch 語句代替。
int a = 36; //聲明 int 型變量 a,并賦初值
int b = 77; //聲明 int 型變量 b,并賦初值
if (a > b) { //判斷 a 是否大于 b
System.out.println("變量 a 大于變量 b"); //如果條件成立,輸出的信息
}else{
System.out.println("變量 a 小于變量 b"); //如果條件不成立,輸出的信息
}
點評
在可以使用switch語句代替if語句的情況下,也最好遵循下面的原則:如果條件在3重之內,最好使用if條件語句,如果超過了3重,則最好使用switch分支語句。