循环语句
- 通过循环语句可以使指定代码反复执行
- JS中一共三种循环语句
while语句
do-while语句
for语句 - while语句
- 语法:
while(条件表达式){
语句…
} - 执行流程:
while语句在执行时,会先对表达式进行判断
如果结果为true,则执行循环体,执行完毕,继续判断
如果结果为true,则再次执行循环体,执行完毕,继续判断,如此重复
直到表达式结果为false时,循环结束
通常编写一个循环,要有三个条件
- 语法:
- 初始化表达式(初始化变量)
- 条件表达式 (设置循环运行条件)
- 更新表达式 (修改初始化变量)
- do-while循环
- 语法:
do{
语句…
}while(条件表达式) - 执行顺序
do-while 语句在执行时,会先执行do后的循环体
执行完毕后,会对while后的条件表达式进行判断
如果为false,则循环终止
如果为true,则继续执行循环体,以此类推
和while区别:
while语句先判读再执行
do-while先执行在判断
实质区别
do-while语句可以确保执行一次
- 语法:
- for循环
- for循环和while无本质区别,都是用来反复执行代码,不同是语法结构
- 语法:
for(①初始化表达式;②条件表达式;④更新表达式){
③语句…
} - 执行流程
①执行初始化表达式,初始化变量
②执行条件表达式,判断循环是否执行(true执行,false终止)
③判断结果为true,则执行循环体
④执行更新表达式,对初始化变量进行修改
⑤重复②,直到判断为false为止 - for循环中的三个表达式都可以省略
- 使用let在for循环的()中声明的变量是局部作用域,只能在for循环内部访问
使用var在for循环的()中声明的变量可以在for循环的外部访问 - 创建死循环的方式:
while(1){}
for(;😉{}
- break
- break用来终止switch和循环语句
- break执行后,当前switch和循环会立刻停止
- break会终止离他最近的循环
continue
- continue用来跳过当次循环
求水仙花数
<script>
// 第一种方法
for (let i = 100; i < 1000; i++) {
let a = parseInt(i / 100)
let b = parseInt(i % 10)
let c = parseInt(i / 10 % 10)
if (i === a * a * a + b * b * b + c * c * c) {
console.log(i)
}
}
// 第二种方法
for (let i = 100; i < 1000; i++) {
let str1 = String(i) //转换为字符串,通过索引
if (str1[0] ** 3 + str1[1] ** 3 + str1[2] ** 3 === i) {
console.log(i)
}
}
</script>
检查从键盘输入的数是不是质数
<script>
let num = +prompt("请输入一个大于1的整数;")
let flag = true
for (let i = 2; i < num; i++) {
if (num % i === 0) {
flag = false
}
}
if (flag) {
alert(`${num}是质数`)
} else {
alert(`${num}不是质数`)
}
</script>
输出100以内所有质数
<script>
for (let i = 2; i < 100; i++) {
let flag = true
for (let j = 2; j < i; j++) {
if (i % j === 0) {
flag = false
}
}
if (flag) {
console.log(i)
}
}
</script>
<script>
console.time('csy')
for (let i = 2; i < 100; i++) {
let flag = true
for (let j = 2; j <= i ** .5; j++) {
if (i % j === 0) {
flag = false
break
}
}
if (flag) {
console.log(i)
}
}
console.timeEnd('csy')
</script>