当我们有一个判断条件的时候,显然用if语句比较方便有效。但当判断条件很多的时候,我们可以使用if语句或者if....eles 语句和switch case 语句。
if...else if语句和多个if语句的区别还是很大的,if...else if在任何一个环节满足条件的时候就将会终止判断,只处理一个满足条件的情况;而对于多个if语句,将会对每一个判断条件进行判断,自然而然会导致程序的执行效率降低。在多个判断条件的情况下,使用if...else if语句相对于使用多个if语句而言,可以减少程序的判断次数,提高效率。
if语句的格式:
if(比较表达式1) {
语句体1;
}else if(比较表达式2) {
语句体2;
}else if(比较表达式3) {
语句体3;
}
...
else {
语句体n+1;
}
执行流程:
首先计算比较表达式1看其返回值是true还是false,
如果是true,就执行语句体1,if语句结束。
如果是false,接着计算比较表达式2看其返回值是true还是false,
如果是true,就执行语句体2,if语句结束。
如果是false,接着计算比较表达式3看其返回值是true还是false,
如果都是false,就执行语句体n+1。
在多个判断条件的情况下,不仅可以使用if...else if语句,还可以使用switch case语句。一般情况下,当判断条件较多的情况下,使用switch case语句的效率会高于使用if...else if语句。switch...case与if...else if的根本区别在于,switch...case会根据你的条件直接跳转到相应的case语句那。switch...case不用像if...else if那样遍历条件分支直到命中条件,而只需访问对应索引项从而到达目的语句那。
总结switch语句和if语句的各自使用场景
switch建议判断固定值的时候用
if建议判断区间或范围的时候用
用switch能做的,用if都能做,单反过来则不行