JavaScript初学者:如何重新启动循环

JavaScript beginner: How to restart a loop

本文关键字:重新启动 循环 初学者 JavaScript      更新时间:2023-09-26

一旦用户猜对了数字,我需要询问用户是否愿意再次播放。事实上,循环只会重复,但我需要的是提示框,询问您是否愿意再次播放。如果用户回答是,则循环将再次启动,直到猜测到答案为止

<HTML>    
    <HEAD>    
    </HEAD>    
    <BODY
        <FORM NAME="testform">
            <BR>
            <BR>
            <BR>
        </FORM>
        <INPUT id="attempts" TYPE="text" NAME="inputbox" VALUE="" />
        <INPUT id="zero" TYPE="button" NAME="resetbox" VALUE="Reset " onclick="reset()" />
        <SCRIPT type="text/javascript">
            varattempts = 0;
            x = Math.round((Math.random()*19))+1;
            var tip; 
            tip=prompt("Do you want to play a game?")
            while(tip.charAt(0).toLowerCase() == "y")    
            {    
                var Guess;
                document.getElementById('attempts').value = 0;
                do 
                {    
                    Guess = prompt("Pick a number between 1 and 20","")
                    if (Guess === null) break;
                    document.getElementById('attempts').value = parseInt(document.getElementById('attempts').value)+1
                } while (Guess!=x);
                if (Guess == x)     
                {               
                    alert("You guessed right!")                 
                }
            }               
            function reset()                
            {
                varattempts=0;
                document.getElementById('attempts').value = 'Attempts: 0'; 
            }
        </SCRIPT>  
    </BODY>    
</HTML>

将您的循环放入另一个循环中。循环,循环。

创建用于运行迭代的函数最简单。当迭代完成时,函数返回,您询问他们是否想再次播放。如果是,则再次调用该函数。

将所有其他代码放入名为play():的函数中

function play() {
    // all your other code here
}
// Then call that function in a loop, return true from play() if the user is done
// and doesn't wish to be asked if they want to play again
var done;
do {
    done = play();
} while (!done || window.confirm("Do you want to play again?"));

您可以将主位放入函数中,然后在需要重置时返回false,并根据提示框调用函数。如果是,那就称之为如果不只是什么都不做或者可能显示一些不同的文本?

varattempts = 0;

看起来像一个错误

看起来写一些简单的imo的方法很糟糕。