一、if和swicth区别
if :
1、表达式的结果是boolean类型,具体的值进行判断
2、变量在某个区间内,常用于区间的判断
3、三目运算符可以用if实现,反之不成立
switch:
1、表达式的值不能是boolean类型,可以是byte、int、char、String,
2、变量是固定值,常用于等值判断
对于几个固定的值判断,建议使用switch 语句。因为switch 语句会将具体的答案都加载进内存,效率相对高一点
基于代码的可读性:如果条件较少时,if-else容易阅读,而条件较多时switch更容易阅读
二、if语句的优化
1、把次数多的条件和执行结果放到最前面
2、减少第一次无用的判断,可以用嵌套判断
3、判断语句禁止出现三次嵌套
三、switch的理解
1、switch的括号里面放的是一个变量
2、case相对应的值是关于这个变量的一个值
3、switch里面的这个变量和case里面这个变量不会进行隐式类型的一个转换,
而是进行了恒等比较(===)。所以一定要注意这个变量和这个case里面的值是不是一个类型
值必须与要匹配的类型相同。只有操作数属于同一类型时,严格比较才能为 true。
4、关于switch里面的case会有一个穿透效果,这个效果有的时候会给我们带来好处,有的时候会给我们带来坏处,
如果不需要这种穿透效果的时候加break
5、swicth里面如果这个变量没有匹配到case里面这个值,那么就需要返回一个信息。所以在case的末尾一定要加上一个default;这样既给用
户的体验比较完美,另一方面对代码的今后维护也有很大的帮助
6、比较的值是固定值
四、示例
A:if语句的格式:
if(比较表达式1) {
语句体1;
}else if(比较表达式2) {
语句体2;
}else if(比较表达式3) {
语句体3;
}
B:getDay() 方法返回 0 至 6 之间的周名数字(weekday number)。
(Sunday=0, Monday=1, Tuesday=2 …)
var value = new Date().getDay()
switch (value) {
case 0:
day = “星期天”;
break;
case 1:
day = “星期一”;
break;
case 2:
day = “星期二”;
break;
case 3:
day = “星期三”;
break;
case 4:
day = “星期四”;
break;
case 5:
day = “星期五”;
break;
case 6:
day = “星期六”;
}