老师为什么图(1)的后两个判断可以弹出,而图(2)的后两个判断不能弹出?

老师为什么图(1)的后两个判断可以弹出,而图(2)的后两个判断不能弹出?

http://img1.sycdn.imooc.com/climg//5984d5ba000133a006540438.jpg

http://img1.sycdn.imooc.com/climg//5984d5ba00014f2606220439.jpg

老师我弄不懂这里是为什么?为什么图1 可以完整的循环弹出,图2却不能?

正在回答

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

5回答

你好,因为两个循环条件不一样,且内部的变量也不一样,(1)中的循环条件为i;而i有等于1;可理解为true的情况下,执行循环,而只有猜对了的语句中有break;可跳出循环,其他情况皆不能跳出循环,则循环就会一直执行。

(2)循环条件为i<=10,但是这个的变量是有i来设置的,且这里的i是一个全局变量会改变i的值,所以只有不满足i<=10的情况下即猜对了跳出循环的情况循环就不会执行。(若输入的值为3,则满足条件,又没有跳出循环就会执行,但若输入的值大于10,或者猜对了,就会跳出循环。)

祝学习愉快!

  • 曽憲夫 提问者 #1
    老师,我可以这样理解吗?图(1)的a变量的判断条件,只要是满足i的条件true,就会一直循环;a变量的只有满足5才会break。(这个我能明白);主要是i和a这里的关系有点模糊。
    2017-08-07 20:18:54
好帮手慕糖 2017-08-08 10:39:14

这个跟i没什么大的关系,i是被赋值的1,这里也可以直接写个1也行,主要是输入的即判断的a。祝学习愉快!

  • 提问者 曽憲夫 #1
    while循环,这个视频我认真的看了一遍,弄清楚为什么图2的后面两个条件不能循环弹出了,因为后面的两个判断条件不满足while(i<=10)这个条件,所以终止循环。而图1里面while(i)的条件可以理解为true,所以只要满足非零和""都会循环。
    2017-08-11 03:02:50
卡布琦诺 2017-08-05 19:19:53

建议亲将代码贴过来哦

  • 提问者 曽憲夫 #1
    var i=1; while (i){ a = parseInt(prompt("请输入您猜的数字")); if (a>5 && a<=10){ alert("猜大了"); }else if (a<5){ alert("猜小了"); }else if (isNaN(a)){ alert("请输入有效数字"); }else if (a>10){ alert("请输入1-10位有效数字"); }else{ alert("猜对了"); break; } } 为什么这段代码可以全部弹出循环?
    2017-08-05 20:56:25
  • 提问者 曽憲夫 #2
    var i=1; while (i<=10){ i = parseInt(prompt("请输入您猜的数字")); if (i>5 && i<=10){ alert("猜大了"); }else if (i<5){ alert("猜小了"); }else if (isNaN(i)){ alert("请输入有效数字"); }else if (i>10){ alert("请输入1-10位有效数字"); }else{ alert("猜对了"); break; } } 而这段却不能,弹出后台两个判断的循环?
    2017-08-05 20:58:17
提问者 曽憲夫 2017-08-05 17:35:44

有没有能帮忙解释一下的?

qq_天天_66 2017-08-05 06:28:18

你说图2 指的是上面那个图吗

  • 提问者 曽憲夫 #1
    上面是图2,下面是图1
    2017-08-05 10:00:58
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
前端小白入门系列课程
  • 参与学习           人
  • 提交作业       11218    份
  • 解答问题       36713    个

从一个不会编程的小白到一个老司机是需要过程的,首先得入门,学习基础知识,然后才能进阶,最后再到精通,本专题是你走进前端世界的不二选择!

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

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