为什么会死机

为什么会死机

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>搜索内容是否有敏感字"草"</title>
</head>
<body>
<script>
  //补充代码
    var input=prompt("请输入想要搜索的内容");
  while(input.indexOf("草")!=-1){
      for(var i=0;i<input.length;i+=1){
          if(input.charAt(i)==="草"){
              document.write("敏感字出现在"+i+"位置");
          }
      }document.write("首次出现的位置是"+input.indexOf("草"))
  }document.write("good boy") 
</script>
</body>
</html>


正在回答

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

2回答

你好同学,因为while括号后面的循环条件成立,就会一直循环下去。在本代码中,当输入的内容中,包含“草”,满足循环条件input.indexOf("草") != -1,执行循环中的代码。当本次循环结束,进入下一次循环。input一直是包含敏感字的,满足条件进入下一次循环。即永远满足循环条件,就会无限循环(即死循环)。

祝学习愉快,望采纳。

好帮手慕码 2019-10-06 16:18:04

同学你好!
是因为使用了while导致代码死循环。按照indexOf方法, 没有“草”自会返回-1,所以最后无需输出document.write("good boy") 

建议修改如下:

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

可以自己再测试一下。

如果帮助到了你,欢迎采纳,祝学习愉快~

  • 提问者 顾兆昱 #1
    为什么while导致死循环?
    2019-10-06 23:47:13
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

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