问题阐述

通常情况下,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分支语句。