我对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 */;
}

08-18 16:19