if、switch、for、while、do…while
流程控制
流程控制的概念
- 在一个程序的执行过程中.每行代码的执行顺序如果不同的话,那么对于整个程序的执行结果是不一样的.
- 所以一般情况下需要人为控制代码的执行过程已达到我们需要的效果,也就是说需要通过一定的手段控制代码的执行顺序
流程控制的分类
- 顺序结构:标准的从上往下执行的顺序
- 分支结构:通过判断一定的条件选择所要执行的代码,而产生若干的分支
- 循环结构:通过一定的条件约束部分代码重复执行若干次
顺序结构
- 顺序结构就是最简单最基本的流程控制,默认的程序代码按照从上往下的顺序依次执行
分支结构:
-
分支结构就是代码由上往下执行的过程中,根据条件选择不同的代码执行路径,从而程序的执行结果也不一样
-
JS
中给我们提供了if
语句和switch
语句
if语句
if
语句我们在其他的语言中都接触过,所以在这里我们就不做过多的讲解了!
if语法
// 判断条件成立了(结果为true),则执行花括号内的程序代码
if(判断条件){
// 内部的执行代码没有数量限制,一般当执行代码只有一句代码时可以省略花括号,但是一般不建议
}
if…else…语法
if(条件){
// 条件的结果为true时执行的语句
}else{
// 条件的结果为false时执行的语句
}
注意:
if...else...
分支结构相当于我们学过的三元表达式,两者之间的区别是三元表达式只能处理比较简单并且最终有一个返回值的一条语句
if(条件1){
// 条件1的结果为true时执行的语句
}else if(条件2){
// 条件2的结果为true时执行的语句
}else{
// 条件1和条件2都为false时执行的语句
}
注意:
- 遇到分支嵌套的话,标准都是从外往内进行逐个条件判断
switch语法
switch(表达式){
case value1: // 如果表达式的结果是value1的话,执行语句1
// 语句1
break;
case value2: // 如果表达式的结果是value2的话,执行语句2
// 语句2
break;
default:
// 如果表达式的结果和上面的每一个value都不同则默认执行default下的语句
}
switch各部分讲解:
- switch:分支的开关
- case:选项,这个选项是用来和
switch
内的表达式进行匹配的 - 关键字
switch
后面跟的可以是表达式,也可以是一个变量 - 关键字
case
后面可以跟一个数据值也可以是一个表达式,每个case
最后面必须有一个冒号;
- 每个
case
的结束使用break
结束,但是并非每一个case
后面都要写这个break
,前提是这个case
不是switch
中的最后的一个case
break
也可以被其他的逻辑控制进行替换
循环结构
for循环
for循环语法
for(初始化变量;条件表达式判断;操作表达式){
// 循环体
}
for循环的执行步骤:
第一步:执行初始化变量,可以写在for
之后的小括号中,也可以写在for
语句之前
第二步:进行条件表达式判断,如果条件成立了则执行循环体
第三步:每次执行完一遍循环体则进行操作表达式的执行,操作表达式可以写在for
之后的小括号中,也可以写在循环体中
第四步:当执行完操作表达式之后再进行条件表达式判断,看是否为true
以便决定是否再次循环
因此综上总结:
- 初始化变量可以省略
- 条件表达式也可以省略(默认为
true
,直接是死循环)。 - 操作表达式也可以省略(省略以后直接是死循环)
死循环:
- 死循环是指一直进行循环,没有终止,一般在编程中尽量要避免死循环情况出现
for循环嵌套
for循环嵌套语法:
for(初始化变量;条件表达式判断;操作表达式){
for(初始化变量;条件表达式判断;操作表达式){
// 循环体
}
}
for循环嵌套讲解:
- 内层循环可以看做外层循环的循环体
- 内层循环执行的顺序也要遵循
for
循环的执行顺序 - 外层循环执行一次,内存循环执行一轮
While循环
while循环语法:
while(条件表达式判断){
//循环体
}
while循环执行步骤:
第一步:先执行条件表达式的判断,如果为true
的话执行进行循环体,如果为false
直接跳过这个循环模块
第二步:为true
的话执行循环体代码
第三步:循环体代码执行完毕,程序会再次回到条件表达式进行判断结果,相当于回到第一步
注意:
- 所以在使用
while
循环时一定要注意,在循环体内部设置一个循环终止的程序,否则就会陷入死循环
do…while循环
do…while循环语法:
do{
// 循环体
}while(条件表达式);
do…while循环执行步骤:
第一步:先进入do
之后的花括号,执行一遍循环体
第二步:进入while
之后的条件表达式进行判断,如果判断结果成立为true
的话再次回到第一步执行一遍循环体,如果不成立为false
的话则循环结束
while循环和do…while循环的区别
while
是先进行判断在进行执行循环体,如果第一次判断不成立则直接跳过循环。do...while
先执行一遍循环体再进行判断,根据判断结果决定是否继续循环,循环体无论如何都会执行一遍
流程控制关键字
简介
- 通过某些关键字对循环结构或者分支结构进行控制的特殊关键字。
三个关键字
- break:关键字用于立刻跳出当前的整个循环
- continue:关键字用于立刻跳出本次循环,继续进入下一次循环
- return:关键字用于立刻结束整个模块