正面或反面游戏javascript do/while循环
我正在尝试使用do/while循环制作一个基本的正面或反面游戏。我的问题是,我的提示似乎不会影响我的变量,因为无论我键入什么,它都会进入下一节,然后根本不会循环。我错过什么了吗?我做错了什么正面或反面游戏javascript do/while循环,javascript,loops,variables,do-while,prompt,Javascript,Loops,Variables,Do While,Prompt,我正在尝试使用do/while循环制作一个基本的正面或反面游戏。我的问题是,我的提示似乎不会影响我的变量,因为无论我键入什么,它都会进入下一节,然后根本不会循环。我错过什么了吗?我做错了什么 var userChoice; var playAgain; do { playAgain = prompt("Do you want to play Heads or tails?"); } while (playAgain === "Yes") { userChoice = promp
var userChoice;
var playAgain;
do {
playAgain = prompt("Do you want to play Heads or tails?");
}
while (playAgain === "Yes") {
userChoice = prompt("Choose Heads or Tails.");
if (userChoice === "Heads") {
coin = Math.random();
if (coin <= 0.5) {
console.log("You Win!");
}
else {
console.log ("You lose");
}
}
if (userChoice === "Tails") {
coin = Math.random();
if (coin > 0.5) {
console.log("You Win!");
}
else {
console.log("You lose");
}
}
playAgain = prompt("Would you like to play again?");
};
var用户选择;
再次播放;
做{
playreach=prompt(“您想玩正面还是反面游戏?”);
}
同时(再次播放==“是”){
userChoice=prompt(“选择正面或反面”);
if(userChoice==“Heads”){
coin=Math.random();
如果(硬币0.5){
log(“你赢了!”);
}
否则{
log(“你输了”);
}
}
playreach=提示(“您想再次播放吗?”);
};
您应该这样做:
var用户选择;
再次播放;
playreach=prompt(“您想玩正面还是反面游戏?”);
同时(再次播放==“是”){
userChoice=prompt(“选择正面或反面”);
if(userChoice==“Heads”){
coin=Math.random();
如果(硬币0.5){
警惕(“你赢了!”);
}
否则{
警惕(“你输了”);
}
}
playreach=提示(“您想再次播放吗?”);
}
您混淆了do while
和while
循环的语法
do while
循环是
do { block } while (condition)
while (condition) { block }
while
循环是
do { block } while (condition)
while (condition) { block }
你试图写一个不存在的混合体,这种形式
do { block1 } while (condition) { block2 }
JS解析器将解释为:
do { block1} while (condition);
{ block2 }
其中分号由自动分号插入机构插入。换句话说,block1
将继续反复执行,只要条件
为真。然后,也只有在那时,它才能继续执行块2
您可以通过在prompt语句上放置一个断点并逐步查看代码来调试这个问题
或者,在代码上运行一个类似jshint的程序,它将报告
line 7, col 28, Missing semicolon
这会给你关于这个问题的线索
解决方案是使用正确的语法重写代码,很可能是一个普通的
while
循环。检查do while
循环的语法。或者,在调试器中,在prompt
语句上放置一个断点,并逐步遍历代码以查看它正在执行的操作。或者,在代码上运行类似于jshint
的程序,它将报告第7行第28列缺少分号。
,这将为您提供有关问题的线索。当不满足while条件时,do/while循环在do语句下执行操作。确切地说,应该说do/while循环在do语句下执行一次操作,然后在满足while
条件时重复该操作。