流程控制语句

92 阅读3分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第32天,点击查看活动详情

分支语句(if)

if语句的作用为'条件判断' --> 根据判断结果执行对应的语句
	if: 如果
	else: 否则
	else if: 或者

三种分支情况:
	1.单分支: 满足条件就执行if里的代码.不满足就无事发生
	2.双分支: 满足条件就执行if里的代码.不满足就执行else里的代码
	3.多分支: 逐个判断是否满足if/else if里的条件.满足就执行对应代码.都不满足执行else代码

1.单分支语句(如果)
	满足条件就执行if里的代码.不满足就无事发生
	语法格式:
		if(判断条件){
			执行语句
		}
	案例:
		let age = 20
        if(age>=18){
            document.write('恭喜你.成年了.要懂事了')
        }

2.双分支语句(如果/否则)
	满足条件就执行if里的代码.不满足就执行else里的代码
	语法格式:
		if(判断条件){
			执行语句
		}else{
			执行语句
		}
	案例:
		let score = prompt('请输入你的成绩')
        if(score>=60){
            document.write('及格了.棒<br>')
        }else{
            document.write('不及格.多喝热水<br>')
        }
        // 这里的输入没有转number条件判断也会执行.因为js进行了隐式类型转换

多分支: (如果 或者 否者)
	逐个判断是否满足if/else if里的条件.满足就执行对应代码.都不满足执行else代码
	语法格式:
		if(判断条件){
			执行语句
		}else if(判断条件){
			执行语句
		}else{
			执行语句
		}

tips:
	1.复杂的条件判断可以用上 &&(and)  ||(or)逻辑运算符
	2.一组分支里面,ifelse只能有一个.else if可以有多个
	3.同一件事中.最好用一组分支,不要用多个if
	4.写多分支语句时,记得书写顺序
	5.在判断中,有值为真,无值为假
		0 0.0 null undefined '' 都没有值,都视为false

选择分支语句(switch)

switch本质也是进行条件判断.但是它是基于同一件事处于不同分支时的判断.说白了,switch就是选项操作.

	case --> 选择
	break --> 结束
	default --> 默认值

语法:
	switch(数据){
		case 情况1:
			执行语句
		break
		case 情况2:
			执行语句
		break
		case 情况3:
			执行语句
		break
		default:
			执行语句
		break
	}

等价于:
if 数据 == 情况1
elif 数据 == 情况2
elif 数据 == 情况3
elif 数据 == 情况4

1.switch括号里放的东西.准确来说叫表达式.里面对数据的要求更精准,所以隐式转换行不通
2.swtich的穿透机制: switch在运行时,不撞break不停止.当满足条件时,会一直执行到break才会结束.有时也可以通过这个机制,来实现特定操作
3.switchif的使用区别: 如果你要进行判断是一个连续的/有关联性的数据.用switch可以更效率

while循环

循环的目的就是为了减少重复代码量.提高运行效率
循环语句也会涉及到条件判断.当条件为真就循环执行,为假就结束循环

生活中的循环: 单曲循环/抄作业/跑圈

语法格式:
	while(循环条件){
		执行语句
		更新语句
	}

let num = 1
while(num <= 100){
	console.log(`这是我喝的第${num}杯热水`)
	num++
}

!!! 由于js是运行在浏览器里面的.如果写死循环,把你浏览器卡死了.有可能翻车.电脑直接未响应

do while循环

语法格式:
do{
	执行语句
}while(循环条件)

用法和while类似. do while的执行流程: 先运行一遍执行语句.再判断循环条件是否满足.
	do while --> 先执行一次再判断 --> 注册/登录
	while循环有可能一次都不会执行.do while至少会有一次

break与continue

break心软的老麟
	循环遇到break时就会直接结束

比如,婷婷老师惹事了.七零老贼罚她抄书100次.然后等婷婷老师抄到70次的时候.就心软了.break掉.就不用再抄了.

	let num = 1
    while(num <= 100){
        document.write(`我是婷婷.这是我抄书的第${num}遍<br>`)
        num++
        if(num == 70){
            document.write('好吧好吧.不用抄了.早点睡觉多喝热水')
            break
        }
    }

continue机智的老麟
	当循环遇到continue时会跳过本次循环
	一整本书那么多页.'不小心'看漏了几页.写漏了几页.很合理

	let num = 0
    while(num < 100){
        num++
        if(num == 70 || num == 50 || num == 13 || num == 57 || num ==66){
            continue
        }
        document.write(`我在写第${num}页的作业<br>`)
    }

for循环

for循环/迭代循环 --> 在循环次数已知的情况下.用for循环会更高效

for(初始化变量;循环条件;更新操作){
	执行语句
}

for(let i=1; i<= 10; i++){
	console.log(i)
}

 for(let i=1; i<= 5; i++){
        for(let j=1; j<=10;j++){
	        document.write('❤')
        }
        document.write('<br>')
    }