一,if-else
只是单纯的一个接一个比较;在找到为真的条件前,每个条件都计算一遍。
二 ,switch case
使用的Binary Tree算法;不管有多少case,都直接跳转,不需要逐个比较查询;switch只计算一次值,然后都是test jmp。
switch使用查找表的方式决定了case的条件必须是一个连续的变量,而if-else则可以灵活的多。
三,总结
当分支较少时(3<=)时,if的效率比switch的效率高。当分支较多时,使用switch效率更高。
四,switch case语句
switch (表达式){
case 值1 : 语句1
break;
case 值2 : 语句2
break;
...
default : 语句n
break;
}
从表达式值等于某个case语句的值开始,它下方的语句都会一直执行,直到遇到一个break为止。随后switch语句
将结束。