JavaScript基础(六)

break & continue

continue跳出本次循环,继续下面的循环。

break跳出终止循环。

写个简单的例子:

<script>

    for (var i=1; i<5; i++){

        if (i==3){

            continue;

        }

        console.log(i);

    }

</script>

ad2f12b2986b42e99b5e4c9e83534d82.png

 结果就是跳过i等于3的那次循环,而break:

 for (var i=1; i<5; i++){

        if (i==3){

            break;

        }

        console.log(i);

    }

f0de18a42fdd47628416d30ec97c0a07.png

 显而易见,i等于3以及后面的循环直接不执行了。

之前我们写的100以内偶数和还记得吧,那个也可以用continue来写:

<script>

    var sum = 0;

    for (var i=1; i<=100; i++){

        if (i%2!=0){

            continue;

        }

       sum+=i;

    }

    console.log(sum);

</script>

2af03e68718c425fae3f2e86affabf64.png

除2余数不等于0的跳过,把不是偶数的都跳过去了,加起来接收一下就好了。

好,continue有用,那break有什么用?这么用——

当你不知道循环执行多少次,可以写个死循环,然后在循环体内判断,满足条件后break终止即可。

那死循环怎么写?

两个方法,没有条件就是死循环,循环条件直接不写,写个分号空着,例:for (var i=1; ; i++)

还有就是这个可以一直满足的条件,比如,i>-1,初始值i=0,i++,自然每次循环就符合条件了。

无穷无尽这就是死循环,到时候就需要在特定的位置bteak终止。

例子还是熟悉的折纸超过珠峰:

对折纸(0.001m)超过珠峰需要多少次?刚超过时高度是多少?

<script>

    //纸的厚度

    var paper =0.001;

    //珠峰高度

    var paek =8848;

    for (var i=1; ; i++){

        paper =paper*2;

        if (paper>paek){

            console.log('对折了'+i+'次,高度达到了'+paper+'超过了珠峰');

            break;

        }

    }

</script>

6e34b818caf1469485800fac86c7c974.png

 练习:模拟计算器

依次输入三个弹窗,第一个输入数字,第二个输入运算符,第三个输入数字,然后给出结果。

非常简单,直接看代码

<script>

    //-0是为了给它转为整数类型

    var num1 = prompt('请输入第一个数')-0;

    var num2 = prompt('请输入运算符+-*/');

    var num3 = prompt('请输入第二个数')-0;

    var sum=0;//用于接收结果

    switch (num2){

        case '+':

            sum=num1+num3;

            alert(sum);

            break;//别忘了case击穿

        case '-':

            sum=num1-num3;

            alert(sum);

            break;

        case '*':

            sum=num1*num3;

            alert(sum);

            break;

        case '/':

            sum=num1+num3;

            alert(sum);

            break;

        default:

            alert('输入内容有误');

            break;

    }

</script>

589ca1d73f4e4d12aaf3e27ffe438e0e.png

1dc38f47c8854428a073f5d11c00479b.png 

4ddf421a49ee4b3eb3f2839a30780bd4.png 

 它们的区别是运算方式不同,这种重复性高的我们直接用switch case就行。

练习:接收输入的成绩计算平均分

 

<script>

    var score;  //每局分数

    var  avg;   //平均分

    var  sum=0;  //总分

    for (var i=1; i<5; i++){

        score = prompt('请输入第'+i+'局的成绩')

        if (isNaN(score)){

            i--;//非数字倒退回本次循环开始

            continue;

        }//isNaN(非数字)执行后面内容,后面细说这个东西

        score-=0;//转成数字类型

         sum+=score;

         avg=sum/i;

    }

    console.log('平均分:'+avg);

</script>

bc60ff641a154e9988027d856e068c10.png

 我们乱输入,直接重新回到本次循环开始

4006eb74f49c4d5dbe2bfad78532e284.png

我每次都输入20,测试结果:

f6782e746a8d4f2fa7a02821266927a3.png

练习:找出1-1000以内所有能被5整除,或被6整除的数,并输出。

 <script>

    for (var i=1; i<=1000; i++){

        if (i%5==0 || i%6==0){

            console.log(i);

        }

    }

</script>

7035820080494a5b85790c8371f30b3d.png

 或满足一边就行,用ΙΙ对不对,那同时满足用&&,复习一下。

最后一个练习,打印金字塔。

很多写法①可以用横线来写

直接在body中写

<body>

    <hr style="width: 10%;">

    <hr style="width: 9%;">

    <hr style="width: 8%;">

    <hr style="width: 7%;">

    <hr style="width: 6%;">

    <hr style="width: 5%;">

    <hr style="width: 4%;">

    <hr style="width: 3%;">

    <hr style="width: 2%;">

    <hr style="width: 1%;">

</body>

20d46216ba104493816a61cda9f805b9.png

太low了,这肯定不是我们的目的,但这也不失为一种方法。

②for循环来写

 for (var i=70; i>=10; i-=10){

    var str='<hr style="width: '+i+'%;">';

    document.write(str);

   }

d775e4cbdad64023947b4e8ce6ee9be9.png

下面再反着来,弄一个对着的

<script>

   for (var i=70; i>=10; i-=10){

    var str='<hr style="width: '+i+'%;">';

    document.write(str);

   }

   for (var i=10; i<=70; i+=10){

    var str='<hr style="width: '+i+'%;">';

    document.write(str);

   }

</script>

f7b5eb5f637d47278528ebc284475804.png

  第三种就是直接写了

for (var i=10; i<=70; i+=10){

    document.write('<hr style="width: '+i+'%;">');

   }

aeda97cd35fb45948a52622c0625d497.png

 但是,这种写法不好,用变量接收输出的写法是最好的,更好维护。

  • 22
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值