为了账号安全,请及时绑定邮箱和手机立即绑定

JS中的while循环会减慢浏览器的速度

JS中的while循环会减慢浏览器的速度

守候你守候我 2022-05-26 11:25:50
我正在编写一个代码,该代码应该猜测用户输入的数字并返回一个带有字符串的段落以及脚本获取该数字所需的尝试次数。没什么太花哨的。问题是,一旦我在 Firefox 上启动页面,它基本上就崩溃了,我不知道为什么。谢谢您的帮助。这是我的代码:    <input id="guess" placeholder="Your Number">    <button id="guessButton">Guess it!</button>    <br>    <div id="scriptOutput"></div>    <script>        var myNumber = document.getElementById("guess").value        var guess = false        var scriptGuess = Math.random()        scriptGuess = scriptGuess*6        scriptGuess = Math.floor(scriptGuess)        var guessCount = 1        document.getElementById("guessButton").onclick = function() {            while (guess == false) {                if (myNumber == scriptGuess) {                    document.getElementById("scriptOutput").innerHTML = "<p>" + "I got it after" + guessCount + "times!" + "</p>";                    guess = true;                }else {                    guessCount ++;                }            }        }    </script></body>
查看完整描述

1 回答

?
肥皂起泡泡

TA贡献1829条经验 获得超6个赞

您scriptGuess在 while 循环之前定义,因此,每次 while 循环运行时,scriptGuess都不会改变。这正在创建一个无限循环。


尝试在 while 循环中添加猜测逻辑。这样,scriptGuess在 while 循环的每个实例中都会初始化一个新值:


<body>

    <input id="guess" placeholder="Your Number">

    <button id="guessButton">Guess it!</button>

    <br>

    <div id="scriptOutput"></div>


    <script>

        var myNumber = document.getElementById("guess").value

        var guess = false

        var guessCount = 1



        document.getElementById("guessButton").onclick = function () {


            while (guess == false) {

                var scriptGuess = Math.random()

                scriptGuess = scriptGuess * 6

                scriptGuess = Math.floor(scriptGuess)


                if (myNumber == scriptGuess) {

                    document.getElementById("scriptOutput").innerHTML = "<p>" + "I got it after" + guessCount + "times!" + "</p>";

                    guess = true;


                } else {

                    guessCount++;


                }

            }

        }


    </script>


</body>

但是,我仍然认为您会遇到时间复杂度的问题。这将花费大量时间来猜测用户输入的数字,尤其是在没有预先确定的范围的情况下。


查看完整回答
反对 回复 2022-05-26
  • 1 回答
  • 0 关注
  • 136 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

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

帮助反馈 APP下载

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

公众号

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