for 循环
也是 循环语句的一种, 但是 语法上和另外两个 不同!
语法: for (1. 初始化; 2. 条件; 3. 改变自身) { 4.循环要执行的代码 }
目前 for 循环的使用场景来看, 要稍微多一点, 但不代表 可以完全替代 while 循环或者 do...while循环
while 循环
var num = 0
while (num < 3) {
console.log(num)
num++
}
console.log('手动分割线====================')
用 for 循环 重构
for (var n = 0; n < 3; n++) {
console.log(n)
}
课堂案例
- 求 1~100 之间所有的和 用 for 循环完成
核心
-
求出 1~100 之间所有的数字
-
求所有数字的和
var sum = 0, a = 100, b = 200, c = 300 for (var i = 1, sum = 0; i <= 100; i++) { // console.log(i) sum += i }
`
var sum = 0
for (var i = 1; i <= 100; i++) {
console.log(i)
sum += i
}
console.log(sum) // 5050
2. 求 1~100 之间 所有 偶数的 和 用 for 循环完成
核心
-
求 1-100 所有的数字
-
求 1~100 之间所有的偶数
-
求和
var sum = 0 for (var i = 1; i <= 100; i++) { if (i % 2 === 0) { // console.log(i) sum += i } } console.log(sum) -
课后练习: 求出 1000~2022 之间的所有的闰年, 输出在页面
核心
- 求出 1000~2022 之间所有的数字
- 求出 这个区间内 所有的 闰年
闰年条件
1: 4年一闰, 百年不闰
2: 400年补一闰
求 1000~2022 之间的数字
for (i = 1000; i <= 2022; i++) {
// 求出这个区间内所有的 闰年
if (i % 4 === 0 && i % 100 !== 0 || i % 400 === 0) {
console.log(i, '年 是闰年')
}
}
求 水仙花数
有一个三位数(100~999) 各个位置上的数字 的 三次方的和 正好等于自身 那么说明 这个数字就是 水仙花数 求出 所有 三位数中的 水仙花数
核心:
- 找出所有的 三位数
- 去找符合条件的数字
条件: 各个位置上的数字 的 三次方的和 正好等于自身
2.1 先计算各个位置上的数字的值是什么, 也就是想办法拿到个位 十位 百位 的值
2.2 计算 三个位置上的数字的 三次方的和
2.3 判断 三次方的和 是否 等于 自身
-
找出所有的 三位数
for (var i = 100; i <= 999; i++) { -
根据 水仙花数的规则, 找出符合条件的数字
2.1 先计算各个位置上的数字的值是什么, 也就是想办法拿到个位 十位 百位 的值 就拿 123 来举例子
我们应该拿到 百位上的 1 十位上的 2 个位上的 3
拿到百位数 先缩小100倍, 然后用 parseInt 忽略掉小数点后的数字, 就只留下 百位上的数字了
拿到十位数 先缩小10倍, 然后取余10, 得到的数字 通过parseInt取整后, 就只留下 十位上的数字
parseInt(123 / 10 % 10) 123 / 10 % 10 -> 12.3 % 10 -> 2.3 parseInt(2.3) -> 2
parseInt(123 / 10) % 10 -> parserInt(12.3) % 10 -> 12 % 10 -> 2
拿到个位数 直接取余10, 就能拿到各位上的数字
123 % 10 -> 3
156 % 10 -> 6
197 % 10 -> 7
parseint( 123 % 100 / 10) -> parseint( 23 / 10 ) -> parseint(2.3) -> 2
parseint( 543 % 100 / 10) -> parseInt( 43 / 10 ) -> parseInt( 4.3 ) -> 4
var baiW = parseInt(i / 100)
var shiW = parseInt(i / 10 % 10)
var geW = i % 10
2.2 计算 三个位置上的数字的 三次方的和
var sum = baiW * baiW * baiW + shiW * shiW * shiW + geW * geW * geW
2.3 判断 三次方的和 是否等于 自身
if (sum === i) {
console.log(i, '是一个水仙花数')
}
}