循环语句
while 循环语句
- while,中文叫 当…时,其实就是当条件满足时就执行代码,一旦不满足了就不执行了
- 语法
while (条件) { 满足条件就会执行 }
- 因为满足条件就执行, 所以我们写的时候一定要注意, 就是设定一个边界值, 不然就一直循环下去了, 简称: 死循环, 电脑卡死的时间根据电脑性能有所不同, 建议不要尝试
var num = 0
while (num < 10) {
console.log('当前 num 的值是: ', num)
num += 1
}
do...while 循环语句
- 是一个和 while 循环类似的循环
- while 会先进行条件判断, 满足就执行, 不满足就直接不执行了
- do...while 的循环是 先不管条件, 先执行一次, 然后再开始进行条件判断
- 语法:
do { 要执行的代码 } while (条件)
var num = 10;
do {
console.log('我执行了一次')
num += 1
} while (num < 10)
for 循环语句
- 和 while do while 循环都不太一样的一种循环结构
- 但道理是和其他两种一样的, 都是循环执行代码的
- 语法:
for (var i = 0; i < 10; i++) { 要执行的代码 }
for (var i = 1; i <= 10; i++) {
console.log(i)
}
循环嵌套的书写
for (var i = 0; i < 3; i++) {
for (var k = 1; k < 4; k++) {
}
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
/**
* 求 1~30 中的所有质数
*
* 如果你能够判断一个数字是不是质数, 那么你就能够完成上述案例
*
*
* 除了1和它本身, 没有能够整除的数字
*
* 7 (是质数)
* 1~7 (除了1和它本身 就剩下 2~6)
* 7 % 2 !== 0
* 7 % 3 !== 0
* 7 % 4 !== 0
* 7 % 5 !== 0
* 7 % 6 !== 0
*
* 8 (不是一个质数)
* 1~8 (除了1和它本身 就剩下 2~7)
* 8 % 2 === 0
* 8 % 3 !== 0
* 8 % 4 === 0
* 8 % 5 !== 0
* 8 % 6 !== 0
* 8 % 7 !== 0
*
* 9 (不是一个质数)
* 1~9 (除了1和它本身 就剩下 2~8)
* 9 % 2 !== 0
* 9 % 3 === 0
* 9 % 4 !== 0
* 9 % 5 !== 0
* 9 % 6 !== 0
* 9 % 7 !== 0
* 9 % 8 !== 0
*
* 假设 数字 为 n
* 1. 找到 2~n-1 的所有数字
* 2. 找有没有能够和 n 完成 整除的 数字
* 有 代表 不是质数
* 没有 代表 是质数
*/
// 当前案例为 判断一个数字是不是质数=============================================
// 假设 数字 为 n
// var n = 6
// var sum = 0 // 用于完成计数器, 当 for 循环内部的 if 语句 执行的时候, 会改变 sum 的值
// // 1. 找到 2~n-1 的所有数字
// for (var i = 2; i < n; i++) {
// // 2. 找有没有能够和 n 完成 整除的 数字
// if (n % i === 0) {
// // console.log(i, '当你看到我的时候 说明有一个数字能够和', n, '完成整除')
// // 当前 分支内 如何修改 sum 的值(修改为什么) 并不重要, 重要的是 不能等于 初始值
// sum++
// // sum = 100
// // sum = true
// }
// }
// // 只要 当前 sum === 0 就证明 上述的 循环内的分支没有执行过
// if (sum === 0) {
// console.log(n, '是一个质数')
// }
// =============================================================================
// 求 1~30 以内的所有质数
// 当前循环只是拿到了 1~30 的所有数字, 没有任何特殊含义, 但是这样写 会将 数字 1 也算作 质数
for (var n = 1; n < 31; n++) {
var sum = 0 // 用于完成计数器, 当 for 循环内部的 if 语句 执行的时候, 会改变 sum 的值
// 1. 找到 2~n-1 的所有数字
for (var i = 2; i < n; i++) {
// 2. 找有没有能够和 n 完成 整除的 数字
if (n % i === 0) {
sum++
}
}
// 只要 当前 sum === 0 就证明 上述的 循环内的分支没有执行过
if (sum === 0) {
console.log(n, '是一个质数')
}
}
/**
* 循环嵌套 其实就是 在一个 for 循环中, 又书写了一个 for 循环
*
* 注意点就是 两个 循环 初始化的变量 不要相同
*/
</script>
</body>
</html>