美文网首页
js中的循环结构

js中的循环结构

作者: 无崖老师 | 来源:发表于2020-03-31 19:14 被阅读0次

    第一节

    循环结构

    问题

    如果输出一句hello world,可以document.write("hello world");.
    思考:现在要输出10次,应该怎么办?
    写10次,....

    分析:

    对于我们来说这样费时费力,同时也会有很多的代码冗余,那么这个时候我们应该使用的就是js中的循环。
    如果不用循环,但是我们要是打印100次hello world呢?

    while循环语句(掌握)

    图片.png

    while循环只要条件为真,就会一直不断重复执行循环体内的代码

    语法
    //当循环条件为true时,执行循环体,
    //当循环条件为false时,结束循环。
    while(循环条件){
      //循环体:需要循环执行的语句
    }
    

    注意: while循环只要条件为真,就会一直不断重复执行循环体内的代

    例题

    例1:输出十个hello

         // 输出十个Hello
        // 1 声明变量
        var i = 0;
        // 2条件为真,则向下执行
        while(i<10){
           console.log(i);
           document.write('Hello world'+'<br />');
           // 3 每循环一次i自加1
            i++;
        }
    

    例2:输出1-10之间所有的数

    / 循环变量初始化
    var num = 1;
    // while循环
    while(num <= 10){
    document.write(num);
    num++;
    }
    

    例3:循环表白,你爱我吗?

         //1. 输入你爱我吗? y/n 
         var res = prompt('爱我吗? y/n');
    
        //2. n   y
        // 条件的角度 
        while (res != 'y') {
            res =  prompt('再说一遍,你爱我吗? y/n')
        } 
    

    do...while循环(掌握)

    图片.png

    do...while和while循环差不多,只是do...while会先无条件执行一次再判断

    语法
    【①循环变量初始化】
    do{
    // 循环体内执行的代码
    【③循环变量更新】 
    }while(【②循环变量判断条件】);
    
    例题

    验证: do...while会先无条件执行一次,然后再判断

    <script>
        
        var num = 1;
        
        while(num > 1)
        {
            document.write("while 哈哈,妹妹进来了!");
        }
        
        
        do{
            document.write("do.while 哈哈,妹妹进来了!");
        }while(num > 1);
        
    </script>
    

    循环表白你爱我吗?

          // 循环表白的案例  do...while()
          do {
    
            var res = prompt('爱我吗');
    
          } while(res != 'y')
    
    

    for循环语句(重点)

    示意图
    图片.png
    for循环语法:
    //1. for循环使用分号分隔
    //2. for循环有2个分号,两个分号不能少
    for(初始化变量1;判断语句2;变量更新3){
      //4循环体
    }
    

    执行顺序:1243 ---- 243 -----243(直到循环条件变成false)

    1. 初始化语句
    2. 判断语句
    3. 自增或者自减
    4. 循环体
    图片.png
    使用案例

    例1: 输出1-10之间的所有数

    <script>
    /*
        for(变量初始化; 判断条件; 变量更新)
        {
            // 循环体内执行的代码
        }
    */
    
    for(var num = 1; num <=10; num++)
    {
        document.write(num + "<br />");
    }
    </script>
    

    例2 入职薪水10K,每年涨幅5%,50年后工资多少?

            var a = 10;
            var i=0;
            while(i<49){
                a = a + a * 0.05;
                i++;
            }
            console.log(a)
            
        // 使用for的写法
            // var salary = 10;
        // for(var i=1;i<=50;i++){
        //   // 涨幅5%,就是明年的工资是今年的1.05倍
        //    salary= salary*1.05;
        // }
        // console.log(salary);
    

    例3 打印100以内 7的倍数

         for(var i=1;i<=100;i++){
             if(i%7==0){
                 console.log(i);
             }
         }
    

    i--的使用

    for(var i=10;i>0;i--){
                循环体;
    }
       // // 倒着输出1-10之间的数
        // for(var i=10;i>=1;i--){
        //     console.log(i);
        // }
    

    总结:for

    for(初始化变量;循环条件;自增/自减){

    循环体
    

    }

    break和continue(掌握)

    break:

    结束/中止for循环

    立即跳出当前整个循环,即循环结束,开始执行循环后面的内容(直接跳传出大括号)

    一般写在打印之后

    continue:

    结束本次循环,进行下一个循环

    立即跳出当前循环,继续下一次循环(跳到i++的地方) (放打印代码前面)

    一般写在打印之前


    图片.png

    双重for循环(重点)

    for循环嵌套时,注意各个循环的计数器变量名不能重复,否则会变成死循环

    例1:五行五列星星的打印

    第一步:输出5x5的*形状

         document.write('*****<br />');
         document.write('*****<br />');
         document.write('*****<br />');
         document.write('*****<br />');
         document.write('*****<br />');
    

    第二步:使用for重复输出5行*

    for(var i=0;i<5;i++){
        document.write('*****<br />');
    }
    

    第三步:让使用for为每行输出五个*

      for(var i=0;i<5;i++){
             // 控制每行输出的个数
             for(var j=0;j<5;j++){
                document.write('*');
             }
             document.write('<br />');
           
         }
    

    例2:金字塔形状的打印

    //          *
    //          **
    //          ***
    //          ****
    //          *****
            
    //      多行多列的内容,可以使用循环的嵌套
    //      外层循环控制行,内层控制列
            for(var i=0;i<5;i++){
                for(var j=0;j<i+1;j++){
                    document.write("*")
            }
                document.write("<br>")
            }
    

    例3:九九乘法表的打印

    第一步:输出九行

    第二步:每行输出九列

    第三步:让列数和行数相等

    第四步:实现数字的替换

     //     打印九九乘法表
    //      1*1=1
    //      1*2=2 2*2=4
    //      1*3=3 2*3=6 3*3=9
    
         for(var i=1;i<=9;i++){  
             // 外层的for循环一次,内次的for就执行i次
             // 设置j<=i;让内层的for随着外层的i变动循环的次数
             for(var j=1;j<=i;j++){
                document.write(j+'x'+i+'='+i*j+'&nbsp;');
             }
             document.write('<br />');
         } 
    

    for、while、do.....while的区别

    1、同一个功能三种循环都可以实现

    2、如果知道循环次数用for循环,不知道循环次数用while或者do..while循环

    3、如果需要无条件先执行一次用do...while,否则用while

    死循环

    图片.png
    无法靠自身控制结束的循环,称为死循环
    
    但是可以利用死循环的原理,解决一些问题:
    
    案例:篮球从5米高的地方掉下来,每次弹起的高度是原来的30%,经过几次弹起,篮球的高度是0.1米。
    
     不知道要循环几次的问题,利用死循环,每次判断一个条件,直到满足条件,利用break跳出循环
    

    例1:给定条件永远成立,就一直执行

        //死循环 : 条件永远成立
        var i = 1;
        while(i<=100){
            document.write(i);
        }
        
    

    例2:表达式指定不合适

        var n=0;
        for(var i=1;i>n;i++){
            document.write('哈哈,死循环');
        }
    

    例2:缺少自增条件

        for(var i=0;i<10;){
            document.write('哈哈,死循环');
        }
    

    画个圈,许个愿,点赞的都能学会,哈哈..........

    相关文章

      网友评论

          本文标题:js中的循环结构

          本文链接:https://www.haomeiwen.com/subject/iceguhtx.html