为什么这个条件不能正常工作
Why is this condition not working properly?
我要做一个数字猜谜游戏,你要猜三次1到5之间的数字。每次猜错后,它会显示你还剩下多少次尝试。当你猜对了,你就会收到一条祝贺信息。当你猜不出答案时,你会得到一条消息。然而,当你猜不出要跑的时候,我无法得到消息。为什么它不运行?
<script type="text/javascript">
var tries=3;
alert("Guess the number I'm thinking of between 1 and 5. You've got 3 tries.");
var attempt = prompt(tries+" tries remaining. Enter your guess.");
var randomnumber = Math.random() * 5;
randomnumber = Math.ceil(randomnumber);
while (tries>=2){
if(attempt!=randomnumber){
tries--;
prompt("Wrong! You have " + tries + " left ");
}
else if(tries<1){
alert("You have no tries left");
}
else {
alert("Congratulations! You guessed the correct number");
return;
}
}
</script>
只有在尝试次数超过2次或恰好2次时才进入循环。否则,if语句不会被执行。你可能需要把if和while分开。
<script type="text/javascript">
var tries=3;
alert("Guess the number I'm thinking of between 1 and 5. You've got 3 tries.");
var attempt = prompt(tries+" tries remaining. Enter your guess.");
var randomnumber = Math.random() * 5;
randomnumber = Math.ceil(randomnumber);
while (tries-1 > 0){
if(attempt!=randomnumber){
tries--;
prompt("Wrong! You have " + tries + " left ");
}
else {
alert("Congratulations! You guessed the correct number");
return;
}
}
alert("You have no tries left");
</script>
您的检查tries>=2
有问题。我已经修改了你的代码一点,它的工作原理要求
var tries = 3;
alert("Guess the number I'm thinking of between 1 and 5. You've got 3 tries.");
var attempt = prompt(tries + " tries remaining. Enter your guess.");
var randomnumber = Math.floor(Math.random() * 5);
while (tries-1 > 0) {
if (attempt != randomnumber) {
tries--;
prompt("Wrong! You have " + tries + " left ");
} else {
alert("Congratulations! You guessed the correct number");
return;
}
}
alert("You have no tries left");
return;
你可以在一行得到一个随机数
将逻辑划分为两层-当你猜测时检查你是否猜对了,否则返回"no guess left"消息
jsFiddle
您必须影响attempt
变量的每次尝试:
<script type="text/javascript">
var tries=3;
alert("Guess the number I'm thinking of between 1 and 5. You've got 3 tries.");
var randomnumber = Math.random() * 5;
randomnumber = Math.ceil(randomnumber);
var attempt;
var success = false;
while (tries>0 && !success){
attempt = prompt(tries+" tries remaining. Enter your guess.");
tries--;
if(attempt!=randomnumber){
alert("Wrong! You have " + tries + " left ");
} else {
success = true;
}
}
if(success){
alert("Congratulations! You guessed the correct number");
} else {
alert("You have no tries left");
}
</script>
工作小提琴相关文章:
- Javascript:selenium Web驱动程序isDisplayed()不工作
- jQuery UI自动完成突然停止工作
- AngularJS UI路由器不能像ng路由器那样工作
- HTML5音频加载和播放获胜'我不能在iPad上工作
- JavaScript打印功能使日历停止工作
- Javascript.getHours()工作不正常
- 为什么这在IE中的工作方式与在Firefox中不同
- 视频HTML没有'无法在Internet Explorer 11上工作
- 扩展移相器按钮类不工作
- Firebase迁移-简单的Firebase.set没有'不再工作了——旧的还是新的
- 谷歌地图不是以HTML显示,而是在JS Fiddle上工作
- 正在尝试使用if和else添加类,但无法正常工作
- Jquery FadeIn FadeOut 只工作一次
- Foreach无法在Typescript中工作
- 另一个ajax调用中的Jquery ajax调用在for循环中没有按预期工作
- 为什么不是't窗口.恢复正常工作吗?(javascript/jquery)
- JS可以在Chrome中工作,但不能在Firefox中工作
- 最大高度转换不;不工作,工作缓慢
- Gulp-rev:不是第一次工作,而是在第一次工作之后工作
- JQuery - Ajax: encodeUriComponent不工作(EncodeUri工作)