JavaScript流程控制语句
流程控制语句
很多编程语言学习过程中,前期较为枯燥无聊.主要是因为做不出来啥东西
但是从流程控制开始就好些
1.代码更具有逻辑性
2.代码内容更有趣,可以做些小案例
3.学习难度有上升
编程源自于生活,结合生活例子来理解代码思路
程序的三种流程:
1.顺序执行: 程序代码从左往右,从上往下依次执行,遇到报错停止
2.选择执行: 判断条件是否满足,执行对应功能,走向不同的分支
3.循环执行: 判断条件是否满足,重复执行对应代码. 复读机
条件判断是基于布尔类型进行判断
本节课逻辑和python一样,但语法不同,不要搞混
代码块权限
在python中,代码块权限是通过缩进来控制:
阿宸
婷婷
玫玫
在JavaScript中,代码块权限是用大括号来表示, 适当缩进控制排版
小悦{
陈笙
默契
木马
}
在js中,如果只有一行语句,可以不用加大括号. 一般为了规范,还是会加上
分支语句(if)
if语句的作用为'条件判断' -- 根据判断结果,执行对应语句
if : 如果
else : 否则
else if : 或者
1.单分支语句(如果/if) 满足条件执行if代码,不满足无事发生
语法:
if(判断条件){
执行语句
}
案例:
let age = 28
if(age >= 18){
document.write('成年了,要懂事听话了')
}
2.双分支语句(如果/或者 if/else) 满足条件执行if代码,不满足执行else代码
语法:
if(判断条件){
执行语句
}else{
执行语句
}
案例:
let num = Number(prompt('请输入考试成绩'))
if(num >=90){
document.write('考得不错,带你下馆子')
}else{
document.write('下次加油,这次先带你买零食')
}
3.多分支语句(如果/或者/否则 if/else/else if) 满足条件执行if/else if代码,都不满足执行else代码
语法:
if(判断条件){
执行语句
}else if(判断条件){
执行语句
}else{
执行语句
}
案例:
let num = Number(prompt('请输入考试成绩'))
if(num == 100){
document.write('很棒,带你去饮茶')
}else if(num >= 80){
document.write('考的不错,去吃火锅')
}else if(num >= 60){
document.write('及格了,去吃沙县大酒店')
}else{
document.write('发挥失常,下次多注意,加油,带你去吃kfc吧')
}
tips:
1.写分支语句时,可以结合 &&(and) ||(or) !(not) 逻辑运算符
2.一组分支只有一个if/else. else if可以有多个
3.写多分支时,注意书写顺序
4.在判断时,有值为真,无值为假
0 0.0 null undefined '' 都为flase
选择分支语句(switch)
switch 也是进行条件判断,它是基于同一事件处于不同值/状态时的判断
简单来说,switch是做选择用的,不适合做复杂选项
case - 选择 break - 结束 default - 默认(相当于else)
语法:
switch(数据){
case 情况1:
代码
break
case 情况2:
代码
break
default:
代码
break
}
等价于:
if 数据 == 情况1
elif 数据 == 情况2
elif 数据 == 情况3
else
tips:
1.switch括号里的数据,正式叫法是表达式,它对数据要求更精准,所以隐式类型转换无效
2.switch穿透机制. 程序运行时,遇到break才停止,没遇到break前会一直执行下去,有时候就可以利用这个机制
3.switch和if的区别: 如果你要判断的数据精确且有关联性,连续性. switch做选择更高效 if做判断更合适
4.case一次只能有一个值
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){
console.log(`这是阿宸老师抄的第${num}遍出师表`)
num++
if(num == 70){
console.log('阿宸老师手抽筋了,算了算了. 下次注意,不要犯错误了')
break
}
}
continue 粗心的麒麟
当循环遇到continue时会跳过,进入到下次循环
一整本寒假作业,那么多页.我<不小心>看漏了几页没写. 很合理
let page = 0
while(page < 100){
page++
if(page == 70 || page == 29 || page == 55 || page == 13){
continue
}
document.write(`这是第${page}页作业<br>`)
}
for循环
迭代循环 -- 循环次数已知 / 遍历数据时. 用for会更高效
for(初始化变量;循环条件;更新操作;){
执行语句
}
for(let i=1; i<=10 ;i++){
console.log(i,'多喝热水')
}
//十行十列的爱心
// 内循环输出十个爱心 -- 内循环结束 -- 换行
// 外循环把上面操作执行10次
for(let i=1; i<=10 ;i++){
for(let j=1; j<=10 ;j++){
document.write('❤')
}
document.write('<br>')
}
练习
输入一个(1~12)数字,判断属于哪个季节
用JavaScript实现九九乘法表(三角形)
用if和while写一个登录系统.输入失败超过3次就结束程序.
用if写一个猜拳游戏.对方默认出石头
打印一个10*10空心矩形 (只有框)
有对情侣.请输入双方的年龄.判断两者是否能够结婚 (法定结婚年龄男方22岁 女方20岁)
用switch,实现一个计算器(加减乘除) --> case的参数为+-*/.
case '+':
case '-'.
猜数字游戏(用python写)