if语句每次都需要判断,而switch则只判断一次,所以switch快,但也要看情况,一般5个选项(包括default)的情况下,switch和if/else if相同。低于5个选项if快,高于5给选项switch快。
1 两者本质的区别是if语句更适合于对区间(范围)的判断,而switch语句更适合于对离散值的判断。
2 示例
判断65分到85分之间的学生有哪些适合用if语句,因为[65,85]是区间。而判断一个学生的班级是一班、二班还是三班适合用switch语句,因为一班、二班、三班是离散值。
3 扩展
所有的switch语句都可以用if语句来替换(因为if语句只需对每个离散值分别做判断即可),而并不是所有的if语句都可以用switch语句来替换(因为区间里值的个数是无限的并且switch所接受的值只能是整型或枚举型,所以不能用case来一一列举)。