# 流程控制
流程 指的是代码的执行顺序
流程控制 指通过规定的语句让程序代码有条件的按照一定的方式执行
结构 | 描述 |
---|---|
顺序结构 | 按照书写顺序从上到下的执行代码 |
选择结构 | 根据给定的条件有选择的执行相应的语句 |
循环结构 | 在给定的条件满足的情况下,反复的执行同一段代码 |
# 选择结构(条件判断)
选择(分支、条件)结构 —— 根据给定的条件有选择的执行相应的语句
# if分支
- 单路分支
if(判断条件){
条件为真,执行该处代码
}
- 双路分支(两条分支二选一)
if(判断条件){
条件为真,执行该处代码
}else{
条件为假,执行该处代码
}
- 多路分支
if(条件1){
条件1 成立,执行代码
}else if(条件2){
条件1不成,条件2成立, 执行代码
}else if(条件3){
条件1 条件2都不成立,条件3成立, 执行代码
}else{
所有条件都不成立, 执行代码
}
- 嵌套分支
if (条件1){
条件1 成立,执行代码
if(条件2){
条件1 条件2 都成立,执行代码
if(条件3){
条件1 条件2 条件3 都成立,执行代码
}else{
条件1 条件2成立,条件3不成立,执行代码
}
}else if(条件4){
条件1成立 条件2不成立,执行代码
}
}
# switch 分支(多选一的条件判断)
switch (需要判断的值) {
case 值1:
当需要判断的值==值1 ,执行代码
break;
case 值2:
当需要判断的值==值2 ,执行代码
break;
case 值3:
当需要判断的值==值3 ,执行代码
break;
}
if分支与switch分支的区别与选择:
- 当判断某种范围时用if,当判断单个值时用switch
- 各个条件满足的情况不可重复,放置造成不可预期后果
# 循环结构
# for循环
for(var i = 0; i < 100; i++){
循环体
每次循环执行一次该处代码
}
# for循环的执行顺序
for循环四个要素: 起始值、终止值、步进值、循环体
for(起始值;终止值;步进值){
循环体;
}
第一次循环的时候顺序为:起始值 => 终止值,判断终止值是否满足条件,不满足条件则结束循环,满足则继续循环 => 循环体 => 步进值;
后续的循环则不再执行起始值,其余顺序不变,直到终止值不满足条件,循环结束。
# break
和continue
break
: 语句可以立即退出循环,阻止再次反复执行任何代码。continue
: 语句退出当前循环,根据控制表达式还允许继续进行下一次循环。
for(var i=1;i<=10;i++) {
if(i==5) {
break;
}
console.log(i); // 输出结果:1 2 3 4
}
for(var i=1;i<=10;i++) {
if(i==5) {
continue;
}
console.log(i); // 输出结果:1 2 3 4 6 7 8 9 10
}
# while
语句
在条件表达式为真的前提下,循环执行指定的一段代码,直到那个表达式不为真时结束循环。
// 控制台顺序输出 1-5:
var i = 0;
while (i < 5){
i += 1;
console.log(i);
}
# for
循环和while
循环的使用选择
for
循环必须知道循环次数,而while
循环次数可以不确定- 所以在已知循环次数情况下使用
for
循环 - 使用时优先考虑
for
循环,当无法写出循环条件的起始结束步进值时考虑用while
循环
# do-while语句
先执行一次循环,再进行判断,所以循环至少迭代一次。
// 控制台输出1-5 :
var i = 0;
do {
i += 1;
console.log(i);
} while (i < 5);
# while
循环和do while
循环的使用选择
do while
循环先执行循环体后判断条件是否成立;while
循环先判断条件是否成立,后执行循环体- 所以
do while
循环的循环体至少执行一次 - 总结: 当循环的判断条件所需的值来自于循环体时,可以使用
do while
循环
do while循环:获取小于0.5的随机数(不知道循环次数,判断条件来自于循环体)
var number;
do{
number = Math.random()
}while(number>=0.5)