我对n00b问题表示歉意,我尝试遍历与无限循环相关的问题,但问题更加复杂:
var replay = 1;
while (replay = 1) {
replay = prompt("Yes(1) or No(0) ?");
}
为什么这是一个无限循环?
我以为这个while循环只会在replay变量的值为1时才继续迭代。
但是,即使用户输入为0或其他任何情况,它也不会停止。
预先感谢您的任何意见!
最佳答案
您正在分配不签入(replay = 1)
您需要双等号==
,或者更好的三等号===
,这还将检查操作数类型的相等性。
此外,您的代码可以更改为此(预览:http://jsfiddle.net/nabil_kadimi/RfdA5/):
var replay;
while ((replay = window.prompt("Yes(1) or No(0) ?")) === '1') {
/* player wants to replay */;
}
甚至更好(预览:http://jsfiddle.net/nabil_kadimi/pdV4M/):
var replay;
while (replay = window.confirm("Replay?")) {
/* player wants to replay */;
}