流程控制
1.1 什么是流程控制
程序中:执行顺序。我们的程序 从上往下,从右到左 (如果右边是表达式 (左到右))。
作用:控制代码何时执行。控制代码执行多少次。
如果你饿了 那么就吃饭。
1.2 三种程序结构
- 顺序结构:从上往下,(等式)从右到左 (如果右边是表达式 (左到右))
- 分支结构:控制代码何时执行,是否执行。
- 循环结构:控制代码执行多少次。
分支结构
单分支结构
if(条件){
代码块;
}
当条件满足时 执行 其中的代码块
双分支结构
if(条件){
代码块1;
}else{
代码块2;
}
当条件满足时 执行 其中的代码块1 否则执行代码块2
多分支结构
if(条件1){
代码块1;
}else if(条件2){
代码块2;
}else if(条件3){
代码块3;
}else if(条件4){
代码块4;
}else{
最终代码块
}
当条件1满足时 执行 其中的代码块1 否则判断条件2是否满足 如果满足 执行代码块2 否则 判断条件3是否满足…如果都不满足 执行 最后一个 else中的代码块;
**在使用多重if时一定要注意 区间判断的顺序。if后边的括号中的值 是 布尔类型 true/false 但是不能直接写true和false **
switch case
语法格式:
switch(参数){case 值1: 代码块①;break;case 值2:代码块②;break;case 值3:代码块③;break;。。。。。default:最后代码块;break;
}
执行流程:
使用switch 后边括号中的参数 跟case 1后边的值 比较,如果相同 就执行 case1后边的代码块,否则,将参数跟case 2 比较 如果相同 就执行 case 2后边的代码块,break结束语句
否则,将参数跟case 3 比较 如果相同 就执行 case 3后边的代码块,break结束语句
。。。。。。。
如果没有相同的case 值 直接执行 default 后边的代码块。
在程序中 break;表示结束程序。
注意:比较值 是全等的比较 即比较值还要比较数据类型。
switch跟if的区别:
if 一般进行区间的判断。但也可以做等值判断
switch 一般进行等值的判断。(做全等比较===)
循环结构
循环:控制代码执行多少次
**what:**重复做某件事
**how:**可以用来解决一些数学问题,也可以用来做一些生活场景的模拟
**why:**控制某段代码在程序中执行的次数。
初始化表达式和循环条件,步进表达式,共同决定了循环的次数
while循环
基本结构:
初始值表达式①;
while(循环条件——条件表达式②){循环体——循环代码块;③初始值迭代;④
}
执行流程:
先初始化表达式①–》执行条件表达式②—》如果满足,执行代码块③—》步进表达式④—》
执行条件表达式②—》如果满足,执行代码块③—》步进表达式④—》
执行条件表达式②—》如果满足,执行代码块③—》步进表达式④—》
执行条件表达式②—》如果条件不满足,直接结束循环。
do…while循环
基本结构:
do{循环代码块;
}while(循环条件)
while和do…while的区别:
while:先判断再执行,如果条件不满足,可以一次都不执行。
do while :先执行再判断,就算是条件不满足,也会至少执行一次。
for循环
循环四要素:
1.初始化表达式
2.条件表达式
3.循环代码块
4.步进表达式(循环变量的重新赋值)
基本结构:
for(初始化表达式① ; 条件表达式② ; 步进表达式④ ){循环代码块 ③;
}
执行流程:①②③④–》②③④–》②③④–》② 如果条件不满足 结束 for 循环。
关键字
break
方法一:直接结束当前循环
方法二:给循环命名,通过break 名字;结束循环。——中断指定循环
aaa:for(var i=1;i<=100;i++){for(var j=1;j<=i;j++){break aaa;
}想从内层循环结束外层循环}
continue
跳出当前这一轮循环,进行下一轮循环
循环嵌套
循环嵌套:外层循环一次,内层遍历一遍。
所以,要注意需求,内层循环+条件判断。
避免死循环
注意事项:
- while后边的括号中的值就是一个boolean类型 结果只有true/false,但是 一定要避免下边的写法while(true/false),避免,如果true,此时直接死循环。如果false ,while中的代码块永远不会执行。
- 还要避免 while(1/0);在js中 1就是true;0就是false;
JS 是不能使用‘’或‘=’直接判断两个数组是否相同的