JavaScript之流程控制-分支结构

112 阅读2分钟

目标

  • 能够使用if分支语句
  • 能够使用switch分支语句
  • 能够使用三元表达式

1. 流程控制

控制代码按照什么结构顺序来执行。

  • 顺序结构
  • 分支结构
  • 循环结构

1651109049(1).png

2. 顺序流程控制

按照代码的先后顺序,依次执行。

3. 分支流程控制if语句

3.1 分支结构

根据不同条件,执行不同路径代码,从而得到不同的结果。

  • if语句
  • switch语句
// if语句的语法结构
if(a>b){
    alert(a);
}else{
    alert(b);
}
// 条件为真,执行alert(a);条件为假,执行alert(b);

var age = prompt('请输入你的年龄');
if(age >= 18){
    alert('我想带你去网吧投耳机。');
}

var score = prompt('请输入你的成绩');
if(score < 100){
    if(score < 80){
        if(score < 60){
            alert('不及格');
        }else{
            alert('刚好及格');
        }
    }else{
        alert('优秀');
    }
}else{
    alert('恭喜你得到满分。')
}

3.2 判断闰年

var year = prompt('请输入年份:');
if(year % 4 == 0 && year % 100 != 0 || year % 400 == 0){
    alert('这是闰年。');
}else{
    alert('这是平年。');
}

3.3 多分支语句

if(score == 100){
    alert('满分')
}else{
      if(score > 80){
           alert('优秀');
        }else if(score > 60){
            alert('不错')
          }else if(score == 60){
              alert('及格');
           }else{
               alert('不及格');
           }
      }

4. 三元表达式

语法结构:条件表达式?表达式1:表达式2

如果条件表达式结果为真,返回表达式1

如果条件表达式结果为假,返回表达式2

score == 100 ? alert('满分') : score >= 80 ? alert('优秀') : score > 60 ? alert('不错'):score == 60 ? alert('及格') : alert('不及格');
//等同于上面if多分支代码

4.1 数字补0

1651112838(1).png

var num = prompt('请输入一个数字');
num < 10 ? alert('0'+num) : alert(num);

5. switch语句

利用表达式的值和case后面的选项值相匹配,如果匹配上,就执行该case里面的语句,如果没匹配上就执行default的语句。

//1' 多分支语句
//2' 语法结构
//switch(表达式){
//    case value1:
//        执行语句1;
//        break;
//    case value2:
//        执行语句2;
//        break;
//    default:
//        执行最后语句;
//}

switch注意事项:

  • 表达式写成变量
  • 表达式的值和case里面的值要完全匹配

5.1 switch和if else if的区别

  • 判断值为固定值用swtich,范围值用后者
  • switch语句进行判断后直接执行到程序条件语句,效率高。if else有几种条件就得多判断几次
  • 分支少时,if else效率更高
  • 分支多时,swtich执行效率高,结构清晰