12.22---02for循环

96 阅读1分钟

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. 求 1~100 之间所有的和 用 for 循环完成

核心

  1. 求出 1~100 之间所有的数字

  2. 求所有数字的和

        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. 求 1-100 所有的数字

  2. 求 1~100 之间所有的偶数

  3. 求和

     var sum = 0
     for (var i = 1; i <= 100; i++) {
         if (i % 2 === 0) {
             // console.log(i)
             sum += i
         }
     }
     console.log(sum)
    
  4. 课后练习: 求出 1000~2022 之间的所有的闰年, 输出在页面

核心

  1. 求出 1000~2022 之间所有的数字
  2. 求出 这个区间内 所有的 闰年

闰年条件

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) 各个位置上的数字 的 三次方的和 正好等于自身 那么说明 这个数字就是 水仙花数 求出 所有 三位数中的 水仙花数

核心:

  1. 找出所有的 三位数
  2. 去找符合条件的数字

条件: 各个位置上的数字 的 三次方的和 正好等于自身

2.1 先计算各个位置上的数字的值是什么, 也就是想办法拿到个位 十位 百位 的值

2.2 计算 三个位置上的数字的 三次方的和

2.3 判断 三次方的和 是否 等于 自身

  1. 找出所有的 三位数

     for (var i = 100; i <= 999; i++) {
    
  2. 根据 水仙花数的规则, 找出符合条件的数字

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, '是一个水仙花数')
        }
    }