鸿蒙应用开发-第二章-JS循环结构

时间:2024-03-19 22:30:10

 Tips:这个只是作者的学习笔记,仅作参考  

目录

一.while循环结构

        (一).语法

        (二).while循环执行流程

        (三).循环练习

二.do while循环结构

三.for循环结构

         (一)语法:

        (二)for循环执行过程:

         (三)for循环练习

四.循环中的关键字

         (一).continue

        (二) .break

五.循环的嵌套

嵌套循环练习 


循环

        使代码重复地执行某一操作,就是循环.

一.while循环结构

        (一).语法

    while(条件){
        条件为true的时候,执行的代码段
    } 

        代码例如下

    var a = 0
    while (a <= 5) {
        document.write('第' + a + '次我爱你<br/>')
        a++
    }

        (二).while循环执行流程

        初始值 a=1
        条件判断 1<=5 -> true -> 执行大括号中代码段
        a++ -> a=2
        条件判断 2<=5 -> true -> 执行大括号中代码段
        a++ -> a=3
        条件判断 3<=5 -> true -> 执行大括号中代码段
        a++ -> a=3
        ......
        条件判断 6<=5 -> flase -> 结束

         Tips:while循环需要我们在循环外就将变量声名好,在执行代码的过程中,一定要让变量进行变化,否则这个循环就会无休止的进行下去。

        不会停止的循环叫做死循环,程序一直不会停止,cpu占用率越来越高,很容易造成系统崩溃。所以我们在写代码的时候一定避免写成死循环。

        (三).循环练习

    // 1. 输出1~5的数字
    var a = 1
    while (a <= 5) {
        console.log(a);
        a++
    }

    // 2.计算1~5的和
    var a = 1
    // 定义一个空容器
    var num = 0
    while (a <= 5) {
        a++
        num += a
    }
    console.log(num);

    // 3.计算1~100中所有偶数的和
    var a = 1
    // 定义一个空容器
    var num = 0
    while (a <= 100) {
        if (a % 2 === 0) {
            num += a
        }
        a++

    }
    console.log(num);

    // 4.计算100以内7的倍数以及带有7的数字
    var a = 1
    while (a <= 100) {
        // if (a % 7 === 0) {
        //     console.log(a);
        // }
        // if (a % 10 === 7) {
        //     console.log(a);
        // }
        // if (a / 10 === 7) {
        //     console.log(a);
        // }
        if (a % 7 === 0 || a % 10 === 7 || a / 10 === 7) {
            console.log(a);
        }
        a++
    }

    // 5.输出所有水仙花数
    var a = 100
    while (a <= 999) {
        var bai = parseInt(a / 100)
        var shi = parseInt(a / 10) % 10
        var ge = a % 10
        if (a === bai * bai * bai + shi * shi * shi + ge * ge * ge) {
            console.log(a);
        }
        a++
    }

    // 6.打印100以内的奇数
    var i = 1
    while (i < 100) {
        if (i % 2) {
            console.log(i);
        }
        i++
    }

二.do while循环结构

         do while 循环是while循环的变异体。循环流程相似,唯一不同的地方在于do while循环会先执行一次,不管条件是否成立,先执行一次,后面的流程和while循环一样。

    do{
        当条件为true的时候执行的代码段
    }while(条件)

例如下:

    var a = 1
    do {
        document.write('我爱你<br/>')
        a++
    } while (a <= 5);

执行过程:

        执行过程:
        a=1
        document.write('我爱你<br/>')
        a++ -> a=1
        条件1<5 ->true
        document.write('我爱你<br/>')
        a++ -> a=2
        条件2<5 ->trrue
        document.write('我爱你<br/>')
        a++ -> a=3
        ...
        条件5<5 -> false
        结束

  和while放一块对比仔细一点

    // 先执行再判断
    var a = 0
    do {
        document.write('我爱你<br/>')
        a++
    } while (a < 5);

    // 先判断再执行
    var b = 0
    while (b < 5) {
        document.write('我不爱你<br/>')
    }

三.for循环结构

         (一)语法:

    for循环:
    for (初始值; 条件; 变化) {
       当条件为true的时候执行代码段
    }

         例代码如下:

    for (var a = 1; a <= 5; a++) {
        document.write('我爱你<br/>')
    }

        (二)for循环执行过程:

            初始值:a=1
            条件:a<=5 ->true
            document.write('我爱你<br/>')
            变化:a++ -> 2
            条件:a<=5 ->true
            document.write('我爱你<br/>')
            变化:a++ -> 3
            ...
            条件:a<=5 ->true
            document.write('我爱你<br/>')
            变化:a++ -> 6
            条件:6<=5 -> false -> 结束      

         (三)for循环练习

//    1.输出1-5的数字
    for (var a = 1; a <= 5; a++) {
        console.log(a);
    }

    //  2.计算1-100的和
    for (var a = 1; a <= 100; a++) {
        // console.log(a);
        sum += a
    }
    console.log(sum);

    //  3.计算50-100之间所有奇数的和
    var sum = 0
    for (var a = 50; a <= 100; a++) {
        if (a % 2 == 1) {
            console.log(a);
            sum += a
        }
    }

    // 4.求所有的水仙花数
    for (a = 100; a < 1000; a++) {
        var bai = parseInt(a / 100)
        var shi = parseInt(a / 10) % 10
        var ge = a % 10
        if (a === bai * bai * bai + shi * shi * shi + ge * ge * ge) {
            console.log(a);
        }
    }

    // 5.计算1-10之间所有奇数和
    var sum = 0
    for (var a = 1; a <= 10; a++) {
        if (a % 2) {
            sum += a
        }
    }
    console.log(sum);

四.循环中的关键字

         (一).continue

        可以跳过当前这次的循环,直接进行下一次的循环。

    // continue - 跳过
    for (var a = 1; a < 5; a++) {
        if (a === 3) {
            continue
        }
        console.log(a);
    }

        (二) .break

         break关键字,可终止循环,直接让整个循环结束运行。

    //break - 中断
    for (var a = 1; a <= 5; a++) {
        if (a === 3) {
            break
        }
        console.log(a);
    }
    // 中断输出
    var a = 1
    while (true) {
        if (a === 10) {
            break
        }
    }
    console.log(a);

五.循环的嵌套

         让一段重复执行代码重复执行,也就是设定一个大程序,让多个代码多运行几次。

 例子如下:

     for (var a = 1; a <= 3; a++) {
        for (var b = 1; b <= 5; b++) {
            console.log('第' + a + '个人跑了' + b + '圈');
        }
    }

效果如下:

嵌套循环练习 

 8*10表格

    document.write('<table border=1 width=400 height=400>')
    for (var a = 1; a <= 8; a++) {
        document.write('<tr>')
        for (var b = 1; b <= 10; b++) {
            document.write('<td>')
            document.write((a - 1) * 10 + b)
            document.write('</td>')
        }
        document.write('</tr>')
    }
    document.write('</table>')

九九乘法表

    // 九九乘法表
    for (var a = 1; a <= 9; a++) {
        for (var b = 1; b <= a; b++) {
            document.write(b + '*' + a + '=' + a + b)
            document.write('&nbsp;&nbsp;&nbsp;')
        }
        document.write('</br>')
    }