if条件控制语句和switch语句

if条件控制语句(判断范围,在一定区间内容进行判断)

if 如果(第一个条件)

else if 如果(第二个条件 可以无限加)

else 否则(只能有一个 上面都不满足的情况下进入)

if和else if同时满足的情况下 只会进入第一个满足的条件(从上到下顺序执行,上面有一个进入下面的内容就不会执行)
if(条件表达式(boolean类型的值 )){
      语句1
}else if(条件表达式){
      语句2
}else{
      上面都满足的情况下执行的代码
}
其中的条件表达式可以是任意表达式,而且对这个表达式求值的结果不一定是布尔值。
因为ECMAScript 会自动调用 Boolean() 转换函数将这个表达式的结果转换为一个布尔值。
如果对条件求值的结果是true,则执行语句1,如果对条件求值的结果是false ,则执行语句2 。而且这两个语句块既可以是一行代码,也可以是一个代码块 (以一对花括号括起来的多行代码) 。
示例
var height = prompt('请输入您的身高')  //返回string值

    if(!(height*1)){  //转为number类型再取反

       console.log('输入出错');

    }else if(height>230 || height<50){

       console.log('不符合标准');

    }else if(height>170){ // 自动转为number类型

       console.log('恭喜符合标准');

    }else{

       console.log('并不满足条件');

    }
当前只有一行代码时可以省略{}(多行不能省)
条件嵌套
var x= prompt()

var y

if(Number(x)|| x == 0){

    if(x<0){

​      y = -1

    }else if(x==0){

       y = 0

    }else{

       y = 1

    }

   console.log(y);

}else{

   console.log('您的输入有误')

}

switch(不能判断范围 只能对应特定的值的判断)

switch属于对应的值判断

// 恒等判断 需要对应类型和值一样
switch(表达式){

  case 常量1(值): 常量4:语句;break  
  //多个case可以在一行书写 表示对应的处理语句是一个

  case 常量2:语句;break  //break 跳出整个代码块 

  case 常量3:语句;break

  default:语句

}

如果忘记break会怎样

如果你忘记添加 break,那么代码将会从值所匹配的 case 语句开始运行,然后持续执行下一个 case 语句而不论值是否匹配。

示例
 var a = prompt()
        switch(a){
            case 'A' :console.log('80-100');
            case 'B' :console.log('70-79');
            case 'C' :console.log('60-69');
            case 'D' :console.log('<60') ;
            default :console.log('error');

        }//输入A 执行结果将是 80-100  70-79  60-69  <60 error
	//将会从满足条件的给第一个语句开始执行到最后

if效率和switch效率 :从一行代码区分,if效率会更高 ; 多行代码区分,switch效率会高(用空间换时间)
posted @ 2022-07-28 20:57  叮叮巴士  阅读(132)  评论(0编辑  收藏  举报