JavaScript 基础
深入数据和类型
函数进阶
运算符
浏览器存储
Document
Web API
事件
工具与规范
实例
练习
日常生活中经常需要执行一些重复的操作。
while
循环则提供了一种循环执行代码的方式,语法如下:
while (condition) {
code
}
当 condition
为 true
时,会一直执行 code
中的内容。
$$edit$$
$$jsdemo$$
let hour = 2
while (hour < 6) {
alert(`才${hour}点,打工!`)
hour++
}
alert(`${hour}点了,下班!`)
死循环
格外注意的是, condition
判断条件需要在某一时刻为 false
或者有 break
结束循环。否则会一直在循环内无法结束,被称为死循环。后续的代码也会无法执行,严重的情况下会造成页面没有响应(卡死)。
$$edit$$
$$jsdemo$$
let hour = 2
while (hour < 6) {
alert(`才${hour}点,打工!`) // 永远无法结束的打工生涯
}
alert(`${hour}点了,下班!`)
$$tip
如果运行代码导致页面卡死可以选择直接关闭页面。
$$
break 关键字
break
出现在循环中时会直到结束当前循环的作用,因此可以用 break
改写以上的代码。
$$edit$$
$$jsdemo$$
let hour = 2
while (true) {
alert(`才${hour}点,打工!`)
hour++
if (hour >= 6) {
break
}
}
alert(`${hour}点了,下班!`)
结束标签处的循环
break <labelName>
可以让代码结束标签处的循环,语法如下:
labelName: while (condition) {
break labelName
}
这是因为 break
只能结束当前循环,如果存在多层循环有时会出现结束上层循环的需求。
$$edit$$
$$jsdemo$$
let today = 1
let hour = 2
while (today <= 5) {
while (hour < 6) {
if (today == 2 && hour == 3) {
console.log("腿断了,休假。")
break
}
console.log(`今天周${today},才${hour}点,打工!`)
hour++
}
hour = 2
today++
}
比如以上的代码中,腿断了应该休假一整周,而不止一天。
$$tip
打开开发者控制台查看 console.log
输出的值。
$$
修改成以下代码,来结束标记处的循环。
$$edit$$
$$jsdemo$$
let today = 1
let hour = 2
week: while (today <= 5) {
while (hour < 6) {
if (today == 2 && hour == 3) {
console.log("腿断了,休假。")
break week
}
console.log(`今天周${today},才${hour}点,打工!`)
hour++
}
hour = 2
today++
}
continue 关键字
continue
关键字可以跳过当前循环直接进入下一次循环。
$$edit$$
$$jsdemo$$
let hour = 2
while (hour < 6) {
if (hour == 3) {
alert("3点了,饮茶先啊。")
hour++
continue
}
alert(`才${hour}点,打工!`)
hour++
}
alert(`${hour}点了,下班!`)
do...while 循环
do...while
循环与 while
循环类似,唯一的不同点在于:
do...while
循环是先执行一轮代码,再进行条件判断。while
循环是每轮代码执行前都会进行条件判断。
do {
// code
} while (condition)
因此 do...while
是先执行再判断,因此n
$$jsdemo$$
$$edit$$
do {
alert("至少被执行一次")
} while (false)
练习
1.这个月有 30 天,第一天是周四。周日分别都是多少号,将它们打印(console.log)出来。
2.设计一个程序,打印出 100 以内的所有质数 。
3.存在两个正整数 a、b(用户输入),求出它们的最大公约数。