JS 循环 WHILE for

98 阅读1分钟

while:循环;

四要素,

1初始化

2 条件判断

3 要执行的代码

4 自身的改变(如果不写,就是一个死循环)

do while 循环

(while 条件成立循环 执行的代码)

do (要循环执行的代码) while(条件)

区别: whlie:会先判断条件,如果成立就会执行

do whlie: 不管条件是否成立都会运行一次,然后判断条件是否成立,决定是否开启下一次循环

for循环:

( 1 初始化,2 判断条件,3要执行的代码, 4改变自身 ){ 要执行的代码 }

循环嵌套:

就是在for的循环中,有写了一个for循环, 两个循环的初始量的变量不要相同。

案例

水仙花数

  1. 找到所有的 三位数 (100~999) // * 2. 找到某一个三位数的各个位置的值 // * 3. 计算三个位置上各个数字的三次方之和 // * 4. 对比 是否等于自身

          // 找到所有的 三位数 (100~999)
     for( var i = 100; i <= 999; i++){
         // 2. 找到某一个三位数的各个位置的值
          var gew = i % 10
          var shiw = parseInt(i / 10) % 10
          var baiw = parseInt(i / 100)
         //  3. 计算三个位置上各个数字的三次方之和
            var sum = gew ** 3 + shiw ** 3 + baiw ** 3 
         //    4. 对比 是否等于自身
         if( sum === i ){
                 console.log(i ,'是水仙花数')
         }
     }
    
     
    

2 最大公约数 // 1. 先找到 112 或者 18 的所有数字 // * 2. 寻找 12 和 8 的公约数 // * 3. 找到所有的公约数中 最大的

      var  num1 = 56
      var num2 = 4

    // 存储一个最小值   用三木
    var num3 = num1 > num2 ? num2 : num1 

    // 在存储一个最大的公约数
    var num4 = 0
    // 1   先找到 1~12 或者 1~8 的所有数字
    for( var i = num3 ; i >= 1 ; i--){
        // 2. 寻找 12 和 8 的公约数
        if(num1 % i === 0 && num2 % i === 0){
            // 3. 找到所有的公约数中 最大的
            if(num4 < i){
               num4 = i
            }

        }
    
    }
    console.log('最大公约数', num4)
    
    

3 求质数 // 假设数字 // 存储一个变量 // 找到2~n-1的数字

    for (var n = 1; n <= 30; n++) {
        var sum = 0  
        for (var i = 2; i < n; i++) {
            // 和n整除的数字
            if (n % i === 0) {
                // 改变自身,不能等于初始值
                sum++
            }  
    //  等于 0 就是个质数 没有运行, 如果可以运行,那就不是一个质数 
        }
        if (sum === 0) {
            console.log(n) 
            }
            
    }