switch与多分支if哪个更好用
switch(choose){
case 1:语句1;break;
case 2:语句2;break;
case 3:语句3;break;
default:默认语句;
}
if(条件1){
语句1
}else if(条件2){
语句2
}else if(条件3){
语句3
}else{
语句4
}
1、switch 一般情况下处理的是等值,而 if else 则可以判断范围,会更加地灵活。
2、switch 使用了 Binary Tree 算法;当switch 语句在运行时,首先会生成一个“跳转表”来指示实际的 case 分支的地址,而这个“跳转表”的索引号与 swtich 中的 case 值是相等的,这样的话,switch就不用像 if else 那样,遍历所有的条件,直至找到正确条件,而仅仅只需要访问对应索引号的表项就可以到达定位分支的目的。而 if else 语句需要一条一条的去进行取值范围的判断,直到找到正确的选项位置,这样的话势必会浪费大量的时间。所以,单从其运行的效率来看,switch语句要更胜一筹。