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

时间:2012-03-02 01:45:21

标签: javascript

一旦用户猜到正确的号码,我需要询问用户是否想再玩一次。因为它是循环只会重复自己,但我需要的是提示框,询问你是否想再次播放。如果用户回答是,则循环将再次启动,直到猜到答案为止

<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>

3 个答案:

答案 0 :(得分:4)

将你的循环置于另一个循环中。 Loopedy loop dee doop。

答案 1 :(得分:0)

最简单的方法是创建一个运行迭代的函数。当该迭代结束时,函数返回并询问是否要再次播放。如果是,则再次调用该函数。

将所有其他代码放在名为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?"));

答案 2 :(得分:0)

你可以将主位置于一个函数中,然后在复位时,返回false并根据提示框调用该函数。如果它是的话,如果不是什么都不做或者可能会显示一些不同的文字呢?

varattempts = 0;

看起来像个错误

看起来像写一些简单的imo的混乱方式。