语句(Statement)---循环语句

循环语句

  • 循环就是重复做一件事,在JS中指的是循环执行某部分代码
  • 循环结构是程序中一种很重要的结构,其特点是在给定条件成立时,反复执行某程序段,直到条件不成立为止

只要条件成立,就会不断地执行花括号里的语句
编写条件时,要避免出现死循环

while循环

//变量初始化
while(条件){
    //条件成立就会不断执行这里的代码,直到条件不成立
    //所以这里一般会伴随着条件的更新
}
    var num = 100;//变量的初始化
    while(num>10){//条件是否成立
        console.log(6666);

        // 变量更新
        num--;
    }

do…while

//变量的初始化
do{
    //不管条件是否成立,先执行一次这里的代码,再进行条件判断,如果条件依然成立,则再次执行这里的代码
    //所以这里一般会伴随着条件的更新
}while(条件)

例如下代码输出num=100,

var num = 100;
        do{
            console.log(num);

            if(num%2===0){
                document.write(num + ', ');
            }

            // 条件更新
            num++;
        }while(num<100);

for循环

for(变量的初始化; 条件判断; 变量更新  ){
    //循环条件成立,则执行这里的代码
    //两个分号必须写!
}

<案例>

  • 打印100以内7的倍数
  • 打印100以内的奇数
  • 小王入职薪水10K,每年涨幅5%,10年后工资多少?
    • 这10年小王赚了多少钱
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>13计算小王10年后的工资</title>
    <script>
        /*
            小王入职薪水10K,每年涨幅5%,10年后工资多少?
                * 这10年小王赚了多少钱
        */
        var salary = 10000;//10500,11025
        // 第一年的总额
        var total = salary*12;
        for(var year=2;year<=10;year++){
            /*
                2: 10000 + 10000*0.05
                3: 10500 + 10500*0.05
                4: 11025 + 11025*0.05
             */
            // salary = salary + salary*0.05;// => salary = salary * (1+0.05) => salary *= 1.05
            // 计算从第二年起的月薪
            salary *= 1.05;

            // 每年总额相加
            total += salary*12;
        }

        document.write('十年后的工资:' + salary.toFixed(2));
        document.write('<br>');
        document.write('这10年小王赚了:' + total.toFixed(2));
    </script>
</head>
<body>
</body>
</html
  • 打印出1000-2000年中所有的闰年,并以每行四个数的形式输出

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>14以每行4个打印闰年</title>
    <script>
        /*
            打印出1900年到现在所有的闰年,并以每行四个数的形式输出
         */

        // 用于保存闰年年的数量
        var qty = 0;

        for(var year=1900;year<=2017;year++){
            if(year%4===0 && year%100!==0 || year%400 === 0){
                qty++;
                document.write(year + ', ');
                // 每4个闰年输出一个换行符
                if(qty%4===0){
                    document.write('<br>');
                }
            }
        }
    </script>
</head>
<body>
</body>
</html>

[练习]

  • 打印100以内所有偶数的和
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8" />
    <title>for打印100以内所有偶数的和</title>
</head>
<body>
    <div id="oushu"></div>
    <script>
        var a = 0;
        for(var i=0;i<=100;i+=2){
            a = a + i;
        }
        oushu.innerHTML = '100内偶数的和是' + a;
    </script>
</body>
</html>
  • 求出1-1/2+1/3-1/4…..1/100的和
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8">
    </head>
    <body>
        <div id="he"></div>
        <script>
            //求出1-1/2+1/3-1/4…..1/100的和
                var a = 0;
                for(var i=1,j=1; i<=100; i++,j*=-1){
                    var a = j/i + a;
                }
                var he = document.getElementById('he');
                he.innerHTML = '求出1-1/2+1/3-1/4…..1/100的和是' + a;
        </script>
    </body>
</html>
  • 打印三角形
    三角形

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <title>打印三角形</title>
    </head>
    <body>
        <script>
            for(var i=1,j=''; i<5; i++){
                j += '*';
                document.write(j+'<br>');
            }
        </script>

    </body>
</html>
  • 山上有一口缸可以装50升水,现在有15升水。老和尚叫小和尚下山挑水,每次可以挑5升。问:小和尚要挑几次水才可以把水缸挑满?通过编程解决这个问题。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8" />
    <title>挑水问题</title>
</head>
<body>
    <div id="count"></div>
    <script>
        // 山上有一口缸可以装50升水,现在有15升水。老和尚叫小和尚下山挑水,每次可以挑5升。问:小和尚要挑几次水才可以把水缸挑满?通过编程解决这个问题。
        var count = document.getElementById('count');
        for(var i=15,j=0; i<=50; i+=5){
            j++;
            console.log('i:' + i +'j:' + j);
        }
        count.innerHTML = '小和尚要挑' + j + '次水才可以把水缸挑满';
    </script>
</body>
</html>
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值