新手小白JS之路--循环语句篇

62 阅读2分钟

一、while循环

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

  1. 初始化
  2. 条件判断
  3. 要执行的代码
  4. 自身的改变
    • 第四步如果不写, 那么这个循环就是一个 死循环
    • 结束的时候 就是 电脑 冒烟的时候

二、do while循环

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

  • 区别:

    • while: 会先判断条件, 如果条件成立那么在开始执行循环

    • do...while: 不管条件是否成立, 先执行一次循环的代码, 然后判断条件是否成立, 决定是否开启下一轮循环

三、for 循环

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

重要案例:

(1)水仙花数:

 // 100-1000 的水仙花数:各个位数上的三次方之和为其本身
 for (num = 100; num < 1000; num++){
     var hundren = parseInt (num / 100)
     var ten = parseInt ( num / 10) % 10
     var a = num % 10
     var sum = hundren * hundren * hundren + ten * ten * ten + a * a * a
        if(sum === num){
            console.log(sum);
        }
    }

(2)写出2-30的所有质数

    // 写出2-30的所有数(1既不是质数也不是素数,没有意义)
    for (var i = 2; i < 30; i++) {
        // 设置一个计数器为0,便于查看后边的程序是否运行
        var calcu = 0
        // 写出2~29的所有数
        for (var j = 2; j < i; j++) {
            // 设置条件,判断是否有数字除了1和它本身外还有其他的被除数,如果有,则不是质数
            if (i % j === 0) {
                // 如果运行了if语句,说明不是质数,那么计数器要执行++的运算,则说明该数字不是质数
                calcu++
            }
        }
        if (calcu === 0)
            document.write(i + '是质数', '<br>');
    }

(3)寻找两个数的最大公因数

    // 最大公约数
    // 输入两个数字
    var num1 = prompt()
    var num2 = prompt()
    // 用于存储最大公因数
    var j = 0
    // 将娇小的值赋给sum
    var sum = num1 < num2 ? num1 : num2
    // 条件里的i从大到小运行,但自减要有一个临界值,即i>=1,不然i会一直自减下去跳不出循环
    for (var i = sum; i >= 1; i--) {
        // 能同时被num1和num2整除
        if (num1 % i === 0 && num2 % i === 0) {
        // 找到所有公因数中最大的
            if (j < i) {
                j = i
            }
        }
    console.log(j);