老师,while难道不能与continue连用吗?

老师,while难道不能与continue连用吗?

关于这道题遍历偶数的问题(暂时不求和),我用for和continue连用可以实现效果,但是while和continue却不行,不知道为什么。


1:用for循环

for (i = 0; i >= 0 && i <= 100; i = i + 2) {
            if (i == 22 || i == 44 || i == 66 || i == 88) {
                continue;
            }
            document.write(i + '<br>')
        }

2:用while循环

var i = 0;
        while (i >= 0 && i <= 100) {
            if (i == 22 || i == 44 || i == 66 || i == 88) {
                continue;
            }
            document.write(i + '<br>')
            i = i + 2;
        }


正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学你好,while可以和continue一起使用,但是由于执行continue语句后,会跳出本次循环,if后面的语句不在执行,也就意味着i的值不会改变,导致陷入了死循环,无法实现效果。

建议修改:调整代码顺序,将i值加2和输出语句放前面,示例:

https://img1.sycdn.imooc.com//climg/638dc14309e438a515740588.jpg

祝学习愉快~

  • 慕粉3319331 提问者 #1

    老师我按照你的方法换了位置过后,发现像22,44,66,88这些偶数还是能显示出来,不符合题目要求....

    https://img1.sycdn.imooc.com//climg/638dd34c099c51ba19200937.jpg

    var i = 0;
            while (i >= 0 && i <= 100) {
                document.write(i + '<br>')
                i = i + 2;
                if (i == 22 || i == 44 || i == 66 || i == 88) {
                    continue;
                }
            }


    2022-12-05 19:18:01
  • 好帮手慕慕子 回复 提问者 慕粉3319331 #2

    同学你好,非常抱歉,这里确实老师的疏忽,只需要将i= i+2 放到前面就可以了,另外,如果需要输出0,需要在循环外提前输出,示例:

    https://img1.sycdn.imooc.com//climg/638ea18d09e089ba15840788.jpg

    祝学习愉快~

    2022-12-06 09:57:39
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师