刚在网上查了一下资料,在这里转一篇switch与If语句执行的比较:
对同一个变量的不同值作条件判断时,可以用switch语句与if语句,哪个语句执行效率更高呢,答案是switch语句,尤其是判断的分支越多越明显。
这个是用switch语句做10000次判断
a = getTimer();
b = 10000;
n = 9;
while (b>0) {
switch (n) {
case 1 :
b--;
break;
case 2 :
b--;
break;
case 3 :
b--;
break;
case 4 :
b--;
break;
case 5 :
b--;
break;
case 6 :
b--;
break;
case 7 :
b--;
break;
case 8 :
b--;
break;
case 9 :
b--;
break;
case 10 :
b--;
break;
default :
b--;
break;
}
}
trace(getTimer()-a);
这个是用if语句做10000次判断
a = getTimer();
b = 10000;
n = 9;
while (b>0) {
if (n == 1) {
b--;
} else if (n == 2) {
b--;
} else if (n == 3) {
b--;
} else if (n == 4) {
b--;
} else if (n == 5) {
b--;
} else if (n == 6) {
b--;
} else if (n == 7) {
b--;
} else if (n == 8) {
b--;
} else if (n == 9) {
b--;
} else if (n == 10) {
b--;
} else {
b--;
}
}
trace(getTimer()-a);
switch语句的执行结果为71,if语句的结果为140,switch语句执行速度比if语句快了一倍,上面的n取值越大,分支越多,结果相差越大。