首先,楼上说case只判断一次个人觉得不严谨,当你有多个case的时候,需要去判断每一个case啊!除非你传入的参数进了第一个case就是只判断一次,且你还需要在case中写上break,否则依然是每个都要去执行。
其次,if elseif 判断逻辑上跟swich case是一样的,在这一点上不存在谁更好。所以它们的性能是一样的,不信可以去google上看下。
最后,swicth 什么时候会有优势呢?
就是当使用函数结果作为判断依据的时候
看下面代码
switch(some_func()) {
case 1: ... break;
case 2: ... break;
}
if(some_func() == 1) {}
elseif(some_func() == 2) {}
补充说明下:上面代码 if else不是最佳实践,就跟我们在for循环中,循环条件用count一样。我们可以使用中间变量在前面做一个赋值操作。这样就不会每次去调函数,提升效率。
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…