亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

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 關注
  • 129 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號