# 流程控制

流程 指的是代码的执行顺序

流程控制 指通过规定的语句让程序代码有条件的按照一定的方式执行

结构 描述
顺序结构 按照书写顺序从上到下的执行代码
选择结构 根据给定的条件有选择的执行相应的语句
循环结构 在给定的条件满足的情况下,反复的执行同一段代码

# 选择结构(条件判断)

选择(分支、条件)结构 —— 根据给定的条件有选择的执行相应的语句

# if分支

  1. 单路分支
if(判断条件){    
    条件为真,执行该处代码
}
  1. 双路分支(两条分支二选一)
if(判断条件){    
    条件为真,执行该处代码
}else{
    条件为假,执行该处代码
}
  1. 多路分支
if(条件1){
    条件1 成立,执行代码
}else if(条件2){
    条件1不成,条件2成立,  执行代码
}else if(条件3){
    条件1 条件2都不成立,条件3成立,  执行代码
}else{
    所有条件都不成立,  执行代码
}
  1. 嵌套分支
if (条件1){
    条件1 成立,执行代码
    if(条件2){
        条件1 条件2 都成立,执行代码
        if(条件3){
            条件1 条件2 条件3 都成立,执行代码
        }else{
            条件1 条件2成立,条件3不成立,执行代码
        }
    }else if(条件4){
        条件1成立 条件2不成立,执行代码
    }
}

# switch 分支(多选一的条件判断)

switch (需要判断的值) {
    case1:
        当需要判断的值==1 ,执行代码
        break;
    case2:
        当需要判断的值==2 ,执行代码
        break;
    case3:
        当需要判断的值==3 ,执行代码
        break;
}

if分支与switch分支的区别与选择:

  • 当判断某种范围时用if,当判断单个值时用switch
  • 各个条件满足的情况不可重复,放置造成不可预期后果

# 循环结构

# for循环

for(var i = 0; i < 100; i++){
    循环体
    每次循环执行一次该处代码
}

# for循环的执行顺序

for循环四个要素: 起始值、终止值、步进值、循环体

for(起始值;终止值;步进值){
    循环体;
}

第一次循环的时候顺序为:起始值 => 终止值,判断终止值是否满足条件,不满足条件则结束循环,满足则继续循环 => 循环体 => 步进值;
后续的循环则不再执行起始值,其余顺序不变,直到终止值不满足条件,循环结束。

# breakcontinue

  • 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循环的使用选择

  1. for循环必须知道循环次数,而while循环次数可以不确定
  2. 所以在已知循环次数情况下使用for循环
  3. 使用时优先考虑for循环,当无法写出循环条件的起始结束步进值时考虑用while循环

# do-while语句

先执行一次循环,再进行判断,所以循环至少迭代一次。

// 控制台输出1-5 :
var i = 0;
do {
   i += 1;
	 console.log(i);
} while (i < 5);

# while循环和do while循环的使用选择

  1. do while循环先执行循环体后判断条件是否成立;
  2. while循环先判断条件是否成立,后执行循环体
  3. 所以do while循环的循环体至少执行一次
  4. 总结: 当循环的判断条件所需的值来自于循环体时,可以使用do while循环

do while循环:获取小于0.5的随机数(不知道循环次数,判断条件来自于循环体)

var number;
do{
    number = Math.random()
}while(number>=0.5)