【简介】if-else 和 switch 的选择更多的是从易读性的角度出发,然后是一些技巧性的提高代码的效率。
2. 条件语句(Conditions)
使用 if-else 还是 switch ,一般就要测试条件的数量来判断:条件数量越大,越倾向于使用 switch 而不是 if-else。
if (con) {
// 代码处理
} else {
// 其他代码处理
}
switch (con) {
case true:
// 代码处理
break;
default:
// 其他代码处理
}
当条件较少时,if-else 更易读;而当条件比较多时,switch 更易读。
if (color == "red") {
// 代码处理
} else if (color == "blue") {
// 代码处理
} else if (color == "black") {
// 代码处理
} else if (color == "brown") {
// 代码处理
} else {
// 代码处理
}
switch (color) {
case "red":
// 代码处理
break;
case "blue":
// 代码处理
break;
case "black":
// 代码处理
break;
case "brown":
// 代码处理
break;
default:
// 代码处理
}
这是从大吗的易读性的角度考虑来选择哪种条件表达式,一旦选定了一种条件表达式,我们就需要从优化的角度来考量代码的效率,从而提高脚本的性能。
优化 if-else 的目标是:最小化到达正确分支所需判断的条件数量。把最可能出现的条件放在首位,考虑如下代码:
if (value < 5) {
// 代码处理
} else if (value > 5 && value < 10) {
// 代码处理
} else {
// 代码处理
}
这段程序中,触发 value 值小于 5 的概率应该是最大的,其次是 value 值在 5 到 10 之间的情况,最后是其他情况,这样可以最小化判断的次数。if-else 中的条件语句应该总是按照从最大概率到最小概率的顺序排列,以确保运行速度最快。
另一种优化条件语句的最佳方案是避免使用 if-else 和 switch。比如对于这样一段代码:
switch (value) {
case 0:
return result0;
case 1:
return result1;
case 2:
return result2;
case 3:
return result3;
case 4:
return result4;
case 5:
return result5;
case 6:
return result6;
default:
return result7;
}
附: 欢迎大家关注我的新浪微博 - 一点编程,了解最新动态 。