五、流程控制
目录
5.2 switch语句和if...else...if语句的区别
1.流程控制
概念:流程控制就是来控制我们的代码按照什么结构来执行。
流程控制主要有3种结构:顺序结构、分支结构和循环结构,这三种结构代表三种代码执行的顺序。
2.顺序流程控制
顺序结构是程序中最简单、最基本的流程控制,他没有特定的语法结构,程序会按照代码的先后顺序,依次执行,程序中大多数的代码都是这样执行的。
3.分支流程控制
3.1 分支结构
概念:由上到下执行代码的过程中,根据不同的条件,执行不同的路径代码(执行代码多选一的过程),从而得到不同的结果。
JS提供了两种分支结构语句:if语句和switch语句
3.2 if语句(单分支语句)
- 语法结构
//条件成立执行代码,否则什么也不做 if(条件表达式){ //条件成立执行的代码语句 }
语句可以理解为一个行为,循环语句和分支语句就是典型的语句。一个程序由很多个语句组成,一般情况下,会分割成一个一个的语句。
- 执行过程
- 判断条件是一个布尔值,当该值为true时,执行{}中的代码块,否则不进行任何处理。当代码块中只有一条语句时,{}可以省略。
3.3 if...else语句(双分支语句)
- 语法结构
//条件成立执行if里面的代码,否则执行else里面的代码 if(条件表达式){ //条件成立执行的代码 }else{ //条件不成立执行的代码 }
- 执行过程
- 当判断条件为true时,执行代码段1;当判断条件为false时,执行代码段2
3.4 if...else...if 语句(多分支语句)
- 语法结构
//适合于检查多重条件 if(条件表达式1){ 语句1; }else if(条件表达式2){ 语句2; }else if(条件表达式3){ 语句3; ... }else{ 以上条件都不成立,执行此代码; }
- 执行过程
- 当判断条件1为true时,则执行代码块1;否则继续判断条件2,若为true时,则执行代码块2,以此类推;若所有的条件都为false,则执行n+1
4.三元表达式
三元表达式也能做一些简单的条件选择。有三元运算符组成的式子称为三元表达式。
- 语法结构
表达式1?表达式2:表达式3
- 执行思路
如果表达式1为true,则返回表达式2的值;如果表达式1为false,则返回表达式3的值
5.分支流程控制switch语句
5.1 语法结构
switch语句也是多分支语句,它用于基于不同的条件来执行不同的代码。当要针对变量设置一系列特定值的选项,就可以使用switch。
switch(表达式){
case 值1:
代码块1;
break;
case 值2:
代码块2;
break;
...
default:
以上条件都不成立,才执行此代码块;
[break;]
}
- 关键字switch后面括号内可以是表达式或值,通常是一个变量。
- 关键字case后跟一个选项的表达式或值,后面跟一个冒号
- switch表达式的值会与结构中的case值作比较
- 如果存在匹配全等(===),则与该case关联的代码块会被执行,并在遇到break时停止,整个switch语句代码执行结束
- 如果所有的case值都和表达式的值不匹配,则执行default里的代码
- 执行case里面的语句时,如果没有break,则继续执行下一个case里面的语句。
5.2 switch语句和if...else...if语句的区别
语句 | 应用场景 | 执行效率 |
if...else...if | 适用于范围判断 | 分支较少时,if...else语句执行效率高于switch |
switch | 通常处理case比较确定的情况 | 分支较多时,switch语句的执行效率比较高,且结构更清晰 |