而循环即使在条件满足后也不会停止
while loop doesnt stop even after condition has been fulfilled
功能:
用户将根据猜谜游戏输入颜色。当答案错误时,提示将保持提示,只有当用户设置正确答案时,提示才会退出。
我做了什么: 已经使用while循环来检查条件。在while循环中,将while循环设置为只有当它与目标等效时才完成,并且目标是系统随机选择的颜色
问题: Prompt最初将颜色设置为答案,但即使在用户设置了正确答案后,Prompt仍保持循环。
当设置了其中一种颜色时,如何退出循环?
<html>
<head>
<title>Color Guessing Game</title>
</head>
<body onload="do_game()">
<script>
function do_game() {
var color = ["blue", "cyan", "gray", "green", "magenta", "orange", "red", "white", "yellow"];
var guess_input_text, guess_input, finished = false,
target, guesses = 0;
var target_index = color[0, 8];
target = target_index;
alert(target);
while (!finished) {
guess_input_text = prompt("I am thinking of these colors:" +
"'n'n blue, cyan, gray, green, magenta, orange, red, white, yellow" + "'n'n what color am I thinking of?");
guess_input = parseInt(guess_input_text);
guesses += 1;
finished = target;
}
}
</script>
</body>
</html>
试试这个代码,它控制循环的每一轮,如果输入与目标相同,如果它们相同,则完成即为真:
function do_game() {
var color = ["blue", "cyan", "gray", "green", "magenta", "orange", "red", "white", "yellow"];
var guess_input_text, guess_input, finished = false,
target, guesses = 0;
var rnd = Math.floor((Math.random() * 9) + 0); //Makes a random number between 0 and 8
target = color[rnd]; //sets the target to a random color from the color array
while (!finished) {
guess_input_text = prompt("I am thinking of these colors:" +
"'n'n blue, cyan, gray, green, magenta, orange, red, white, yellow" + "'n'n what color am I thinking of?"); //gets alert-input from user
guesses += 1;
if(guess_input_text == target){//checks if input from user and target are the same
finished = true;
}
}
}
您的代码不会按照您的想法执行。
这不会得到随机值的索引,而是得到最后一个值。
var target_index = color[0,8];
这将获得一个随机数组值:var rand=color[Math.floor(Math.random()*color.length)];
一旦你有了获胜的价值,做指数比较就没有意义了。您可以简单地比较字符串,因为prompt()返回输入响应的字符串(为简洁起见,修改了提示文本)。
var finished = false;
while (!finished)
{
var input = prompt("What color am I thinking of?");
finished = (input.toLowerCase() === rand);
}
另一种不用完成变量的方法。使用中断
var target_text = color[0, 8];
...
while (true) {
guess_input_text = prompt("I am thinking of these colors:" +
"'n'n blue, cyan, gray, green, magenta, orange, red, white, yellow" + "'n'n what color am I thinking of?");
guesses += 1;
if(guess_input_text == target_text){
//guessed correct answer
break;
}
}
相关文章:
- jQuery:循环一个具有不同超时值的循环
- 在循环中分配json值时,值被覆盖
- 如何在下面的ES6循环中获得前面的文本
- Javascript 循环,直到满足条件
- 如何在 JavaScript 中循环遍历 HTML 行并在满足条件时更改背景
- 我如何编写一个 Javascript for 循环,以便在满足第一个条件时中断
- 如何让 casperjs 重复循环,直到满足某个条件
- 当 while 循环和行变量满足条件时,如何循环它们
- 循环 JS 函数,直到满足 if 或 else 条件
- 在 JavaScript 中循环,直到满足条件
- 而循环即使在条件满足后也不会停止
- 循环多维数组以满足jQuery条件
- 遍历循环,在一个范围内随机更改变量的值,但满足所有变量
- Javascript while或for循环,改变字符串直到满足条件
- 如何循环通过我的html和注入文本,如果一个条件是满足
- 循环JSON并在满足条件时停止.然后数一数这些物体
- 即使条件n't不满足,while循环的结果仍然发生
- for循环中的If语句不满足for循环的条件
- 对于可能不满足结束条件的while循环,最佳实践是什么
- 在函数内部循环,直到满足目标