老师好,为什么没有这个break会陷入死循环,下边的限制条件没用吗?

老师好,为什么没有这个break会陷入死循环,下边的限制条件没用吗?

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title></title>

</head>

<body>

<script>

do{

var i = prompt("输入");

if(i<5){

document.write("猜小了");

}else if(i>5){

document.write("猜大了");

}else if(i==5){

document.write("对了");

break; //为什么没有这个break会陷入死循环,下边的限制条件没用吗?

}else{

alert("输错了");

}

}while(i!==5)

</script>

</body>

</html>


正在回答 回答被采纳积分+1

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

1回答
好帮手慕慕子 2019-05-07 18:50:09

同学你好,因为下面的代码不是限制条件。alert是弹出语句, 并不会阻止循环的执行。 所以必须要使用break关键字结束循环。

另外。因为document.write中的信息在弹窗关闭后才会输出到页面中。 建议: 同学在用户输入的数字大了或者小了的时候使用alert弹出提示信息。让实现效果更友好。 示例:

http://img1.sycdn.imooc.com//climg/5cd162ac0001747310910521.jpg

如果帮助到了你, 欢迎采纳!

祝学习愉快~~~~

  • 提问者 大冬瓜爱吃鱼 #1
    do……while(括号里边的不是每一次循环后,判断是否进行下一次循环的条件吗?)
    2019-05-08 08:50:23
  • 同学你好, 抱歉老师一开始理解错了同学说的下边的限制条件指的是哪里。 因为while括号里面使用的是不全等(!==), 会同时比较数据类型和值。 这里的i!==5;表示与number类型的数字5比较。而prompt语句返回的数据类型是字符串。由于两边的数据类型不同,导致两边一直是不相等的状态, 所以限制条件没用。 同学如果不想使用break;的话 可以改写成 i!= “5”或者是 i!==5 祝学习愉快~~~
    2019-05-08 09:31:14
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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