程序控制语句之条件控制语句-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只能是固定值

posted @ 2022-07-26 19:27  奇思妙想流川枫  阅读(125)  评论(0)    收藏  举报