JS要点整理-4

23 阅读1分钟

循环语句

根据给出的某一些条件 重复执行某一段代码

不管什么循环都必须由以下几个内容组成

  1. 初始化
  2. 条件判断
  3. 要执行的代码
  4. 自身的改变 :如果不写, 那么这个循环就是一个 死循环

while 循环语句

while (条件) { 满足条件就会执行 }

        var a = 1                        //初始化
        while (a <= 5) {                 //条件判断
            console.log(a);              //要执行的代码
            a++                          //自身的改变
        }
       
 //求1-100偶数和      
        var sum = 0                       //定义求和取得的值
        var num = 1                       //定义每一项的值
        while (num <= 100) {              //单独项的值最高为100
            if (num % 2 === 0) {          //判断是否为偶数
                sum += num                //求和值为前一求和值加新一项的值
            }                                         
            num++                         //新一项的值比前一项的值多1
        }
        console.log(sum);                 //输出最终求和值        

do...while 循环语句

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

二者区别:

  1. while: 会先判断条件, 如果条件成立那么在开始执行循环
  2. do...while: 不管条件是否成立, 先执行一次循环的代码, 然后判断条件是否成立, 决定是否开启下一轮循环
        var pwd; 
        do {                                    //用do-while先弹出一个输入框
           pwd = prompt("请输入密码")       
        } while (pwd !== '123456');             //当密码正确结束循环
        console.log('登陆成功');

for 循环语句

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

把初始化, 条件判断, 自身改变, 都统一写在了一起

//水仙花数
        //所有三位数
        for (num = 100; num < 1000; num++){
            //求百位数
            var a = parseInt(num / 100)
            //求十位数
            var b = parseInt(num / 10) % 10
            //求个位数
            var c = num % 10
            //水仙花数:每个位上的数的立方的和是这个数本身
            //**左边数字的右边次幂
            if (a ** 3 + b ** 3 + c ** 3 === num) {
                //控制台输出
                console.log(num);
                //页面输出
                document.write(num + ' ')
            }
        }
     
     
    //最大公约数
            //取两个数
        var a = prompt() - 0
        var b = prompt() - 0
        //找最小值
        var c = a > b ? b : a
        //约数小于两个数
        for (var d = 1; d <= c; d++){
            //公约数能被二者整除
            if (a % d === 0 && b % d === 0) {
                //最大公约数是公约数的最大值
                var e = d
            }
        }

循环嵌套的书写

循环嵌套其实就是一个循环内部又写了一个循环

两个循环的循环变量不能相同, 会有冲突

        //计数器
      var sum = 0
      //数
      for (var num = 2; num <= 30; num++){
          //约数
          for (var i = 2; i <= num - 1; i++){
              //除1和自身有其他约数
              if (num % i === 0) {
                  sum++
              }
          }
          //计数器为零,说明没有其他约数
          if (sum === 0) {
              //此时为质数
              console.log(num);
          }
          sum = 0            
      }