程序控制语句之条件控制语句-if和switch
程序控制语句(所以程序和语言都有的)
逻辑运算符
console.log('a' && 'b'); //两个都是ture结果为最后的ture值
console.log('a' && ''); //取false的值,如果第一个是false就不用看后面
console.log('undefiend' || ''); //两个都是false取最前面的false值
console.log(0 || false); //两个都是false取最后面的false值
console.log('a' || 'b'); //取ture值,如果第一个是ture就不用看后面
总结:
短路与(&):一假为假取假值,都真才为真取后真
短路或(|):一真为真取真值,都假才为假取后假
三目运算 ,跟逻辑运算优先级一样
if
if内的表达式,会自动转为对应boolean类型
if内一般用区间值
else else if可以不一定有,else一定放最后面且不带条件
if(条件表达式(boolean类型的值 如果当前这个不是一个boolean的值他会自动转成boolean类型)){
需要执行的代码
}else if(条件表达式){
需要执行的代码
}else{ //上面的都不满足的情况下
需要执行的代码
}
//示例
var i = prompt("请输入你的成绩")
if (i < 0 || i > 100 || !Number(i)) {
console.log('输入有问题');
} else if (i < 60) {
console.log('成绩判断为不及格');
} else if (i < 75) {
console.log('成绩判断为及格');
} else if (i <= 85) {
console.log('成绩判定为良好');
} else {
console.log('成绩判定为优秀');
}
if内可以嵌套使用if
//示例
var i2 = prompt('请输入你的身高(cm)');
var i3 = prompt('请输入你的体重(斤)');
var i4 = (i2-108)*2;
//限制条件,50<身高<230; 50<体重<300; 身高体重都只能是Number类型中的ture,才能进入if内运算
//否则,你就是来找茬的
if (((i2 >50 && i2 <230) && (i3 > 50 && i3<300)) && Number(i2) && Number(i3))
{
if ((i4 >i3 && i4-i3 <= 10) || (i4<i3 && i3-i4 <= 10))
{
console.log('你体重挺合适的');
}else
{
console.log("你体重不太合适");
}
}else{
console.log("你找茬是吧?");
}
switch
switch只能用固定值
switch常常用来写 已知值来做操作的东西
case多个可以写到同一行
case的值一定要和引入的值是同一类型(恒等对比,下例中为字符串类型)
case的值一般为常量
break用来跳出代码块,不加的话就会向下一直进行操作
switch(表达式){
case 值(常量): 操作 break;
case 值: 操作 break;
case 值: 操作 break;
default: 当上面都不满足的情况下才执行默认的操作
}
//示例
var i = prompt('请输入你的grade')
switch (i) {
case 'A': case'S': //'A'和'S'是同一个操作
console.log('80-100');
break;
case 'B':
console.log('70-79');
break;
case 'C':
console.log('60-69');
break;
case 'D':
console.log('<60');
break;
default:
console.log('error');
break;
}
if和switch的对比
-
if还能做有范围的东西,switch不行
-
if效率和switch效率 从一行代码区分对应的来说 if效率会高点 多行代码区分 switch效率会高(用 空间换时间)
-
if 是可以使用区间值 也可以使用固定值,switch只能是固定值

浙公网安备 33010602011771号