2021-09-16---JavaScript基础语法:循环结构

一,循环结构

满足一定条件后,重复执行相同或相似的代码

二,循环思想(循环三要素)

  1. 从哪里开始
  2. 到哪里结束
  3. 步长(步进)
    在这里插入图片描述

三、实现循环的语句

  1. while
  2. do whie
  3. for

四、语法

1.while : 当型循环

循环初值;
while(循环条件){
	语句组;
	步长;
}

2. do while : 直到型循环

循环初值;
do{
	语句组;
	步长;
}while(循环条件);

3.for : 多功能循环

for(循环初值;循环条件;步长){
	语句组;
}

五、额外的格式

循环初值;
for(;循环条件;步长){
	语句组;
}

循环初值;
for(;1;){
	语句组;
	步长;
}

六、无限循环(死循环)

while(1){}

do{} while(1);

for(;1;){}

七、循环之间的区别

1.while:

(1)当型循环,先判断条件,后执行语句
(2)第一次条件为false时,一次都不执行
(3)在循环次数不确定时,建议使用

2.do while:

(1)直到型循环,先执行语句,再判断条件
(2)第一次条件为false时,至少执行一次
(3)在循环次数不确定时,建议使用

3.for:

(1)当型循环,先判断条件,再执行语句
(2)第一次条件为false时,一次都不执行
(3)在循环次数确定时,建议使用

八、break关键字VScontinue关键字

break关键字

  1. 用于switch语句中,跳出switch语句
  2. 用于循环语句中,跳出当前循环

continue关键字

用于循环语句中,跳出本次循环,提前进入下一次循环

九、循环应用

<script>
         /* 
         (三)输出三角形 
            **** 
            *** 
            **
            *
         */  
        function square1(){
            var str = '';
            for(var i = 1;i <= 4;i ++){
                for(var j = 1;j <= 5-i;j++){
                    str += '*'
                }
                str += '\n';
            }
            console.log(str);
        }
        // square1();


        /* 
        (四) 输出三角形
            *
           ** 
          *** 
         ****

        */
        
        var square2 = function(){
            var str = '';
            for(var i = 1;i <= 4;i ++){
                for(var j = 1;j <= 4-i;j ++){
                    str += '';
                }
                for(var j = 1;j <= i;j ++){
                    str += '*';
                }
                str += '\n';
            }
            console.log(str);
        }
        // square2();


        /* 
        (五)输出三角形 
        **** 
         ***
          **
           *
        */

        function square3(){
            var str = '';
            for(var i = 1;i <= 4;i ++){
                for(var j = 1;j <= i-1;j ++){
                    str += ' ';
                }
                for(var j = 1;j <= 5-i;j ++){
                    str += '*';
                }
                str += '\n';
            }
            console.log(str);
        }
        // square3();
        


        /*
        (六) 输出三角形 
           *         1  1
          ***        2  3
         *****       3  5
        *******      4  7
        */
        var square4 = function(){
            var str = '';
            for(var i = 1;i <= 4;i++){
                for(var j = 1;j <= 4-i;j ++){
                    str += ' ';
                }
                for(var j = 1;j <= 2*i-1;j ++){
                    str += '*';
                }
                str += '\n'
            }
            console.log(str);
        }
        // square4();


        /*
        (七) 输出 
        *+******* ****””****           1    7
        **+***** ****””^^****          2    5
        ***+*** ****””^^^^****         3    3
        ****+* ****””^^^^^^****        4    1
        */
        function square5(){
            var str = '';
            for(var i = 1;i <= 4;i ++){
                for(var star = 1;star <=i;star ++){
                    str += '*';
                }
                str += '+';
                // for(var star = 4;star <= -2*i-1;star --){
                //     str += '*';
                // }
                str += ' '
                for(var star = 1;star <= 4;star ++){
                    str += '*';
                }
                for(var mark = 1;mark <= 4;mark++){
                    str += "'"
                }
                for(var not = 1;not <= 2*i-2;not ++){
                    str += '^'
                }
                for(var star = 1;star <= 4;star ++){
                    str += '*';
                }
                str += '\n';
            }
            console.log(str);
        }
        // square5();


        /*
        (八) 输出九九乘法表
        */
        var mult = function(){
            var str = '';
            for(var i = 1;i <=9;i ++){
                for(var j = 1;j <= i;j++){
                    str += j + '*' + i + '=' + i*j + ' ';
                }
                str += '\n';
            }
            console.log(str);
        }
        // mult();

        /*
        (九) 输出一元钱的兑换方案(1 角 2 角 5 角)
        a = 1角    至少0张1角 最多10张1角
        b = 2角    至少0张2角 最多5张2角
        c = 5角    至少0张5角 最多2张5角
        sum = 1元
        */
        var fnMoney = function(){
            var str = '';
            for(var a = 0;a <= 10;a ++){
                for(var b = 0;b <= 5;b ++){
                    for(var c = 0;c <= 2;c ++){
                        if(a*1 + b*2 + c*5 === 10){
                            str += a + '张1角' + b +'张2角' + c +'张5角' + '\n';
                        }
                    }
                }
            }
            console.log(str);
        }
        // fnMoney();
        
        var fnMoney = function(){
            var str = '';
            for(var a = 0;a <= 10;a ++){
                for(var b = 0;b <= 5;b ++){
                    for(var c = 0;c <= 2;c ++){
                        if(a*1 + b*2 + c*5 === 10){
                            str += a + '张1角' + b +'张2角' + c +'张5角' + '\n';
                        }
                    }
                }
            }
            return str;
        }
        console.log(fnMoney());
        

        /*
        (十) 打印 100~200 之间所有能被 3 或者 7 整除的数
        能被3整除,i % 3 === 0;
        能被7整除,i % 7 === 0
        */
        var num = function(){
            var str = '';
            for(var i = 100;i <= 200;i++){
                if(i % 3 === 0 || i % 7 ===0){
                    str += i + ' ';
                }
            }
            console.log(str);
        }
        // num();


        /*
        (十一) 计算 100 的阶乘
        */
        var fn_mul = function(){
            var mult = 1;
            for(var i = 1;i <= 100;i ++){
              mult *= i;
            }
            console.log(mult);
        }
        // fn_mul();
        

        /*
        (十二) 求 100-999 之间的水仙花数。abc =ܽa^3+b^3+c^3;
        百位:a=parseInt(abc/100);
        十位: b=parseInt(abc/10)%10;
        个位: c=abc%10;
        // var a=parseInt(i/100);
        // var b=parseInt(i/10)%10;
        // var c=i%10;
        */
        function fu_mult(){
            var str = '';
            for(var i = 100;i <= 999;i ++){
                if(i == ( parseInt(i/100)*parseInt(i/100)*parseInt(i/100) + (parseInt(i/10)%10)*(parseInt(i/10)%10)*(parseInt(i/10)%10) + (i%10)*(i%10)*(i%10)) ){                
                    str += i + ' ';
                }
            }
            console.log(str);
        }
        // fu_mult();
        

        /*
        二、 求 1+2!+3!+...+20!的值
        
        */

        var sum = 0,mult = 1;
        for(var i = 1;i <= 20;i ++){
            for(var j = 1;j <= i;j++){
                mult *= j;
            }
            sum += mult;
        }
        console.log(sum);
        //首先第一圈的循环是1-20
        //然后第二圈循环是求每一个数的阶乘。要保证在求这个数的阶乘之前,mult的值为1,而不是之前循环的所有求过的数的阶乘。
        //上面这种写法,在第二次循环的时候,mult的初值不是初始的1,而是第一次循环过后1的阶乘的值。
        var sum = 0;
        for(var i = 1;i <= 20;i ++){
            var mult = 1;//要注意求每一个数的阶乘前,都要保证mult的值为初值,而没有上一个数的阶乘。
            for(var j = 1;j <= i;j++){
                mult *= j;
            }
            sum += mult;
        }
        console.log(sum);
    </script>

posted @ 2022-10-08 01:20  昔痕  阅读(7)  评论(0编辑  收藏  举报