在 if/else 内循环

While loop inside if/else

    while(playerTwoHealth > 0 && playerOneHealth > 0){
        changeScreen("Player1's Turn", "<button id='player1Attack'>Attack</button><button id='player1Defend'>Defend</button>");
        $("#player1Attack").click(function(){
            var successfulAttack = alert("Did you get this question right?");
            if(successfulAttack === true){
                playerTwoHealth = playerTwoHealth - 1;
                if(playerTwoHealth === 0){
                     break;
                };
            }else{

            };
        });
    };

我正在制作一个教育数学游戏,在这部分代码中,我试图测试对所提问题的反应。函数 changeScreen 将屏幕的标题和段落部分更改为指定的 HTML。在线号7-9,if/else 语句旨在测试玩家的生命值是否已达到 0,如果达到,则中断第 1 行声明的 while 循环。但是,break 语句会抛出 illegal break statement 错误。请post任何关于如何解决的建议。

您的 break 语句在绑定到点击事件的函数中,因此它不在 while 循环中。永远不要在 while 循环中绑定事件,因为这会在每次循环时尝试绑定事件。

此外,您可能希望将 alert 替换为 prompt

将点击事件移出循环。事实上,你并不真的需要休息,因为当健康为 0

时 while 循环条件将无效
while(playerTwoHealth > 0 && playerOneHealth > 0){
    changeScreen("Player1's Turn", "<button id='player1Attack'>Attack</button><button id='player1Defend'>Defend</button>");

};

$("#player1Attack").click(function(){
    var successfulAttack = alert("Did you get this question right?");
    if(successfulAttack === true){
        playerTwoHealth = playerTwoHealth - 1;
           if(playerTwoHealth === 0){
                // Do stuff
           };
    } else {

    };
});