使用Javascript无限while循环
stuck with Javascript infinite while loop
我对n00b问题表示歉意,我已经尝试过处理与无限循环相关的问题,但它们要复杂得多:
var replay = 1;
while (replay = 1) {
replay = prompt("Yes(1) or No(0) ?");
}
为什么这是一个无限循环?
我认为while循环只会在重播变量的值为1时继续迭代。
然而,即使用户输入为0或其他任何情况下,它也不会停止。
提前感谢您的任何意见!
您正在进行赋值,而不是比较。
更改:
while (replay = 1) { // Will always have a value of 1
至:
while (replay == 1) { // Will have a value of true or false
在while部分中使用==
而不是=
。
您正在分配不检查(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 */;
}
您需要在while循环中使用==(相等)而不是=(赋值)
while(replay == 1) {
//code
}
JavaScript正在做它应该做的事情。每次循环迭代时,你都会重新分配值1来重播。在继续之前,您确实希望检查重播是否等于1。
您希望在while循环中使用===
比较运算符,而不是=
赋值运算符。
此外,由于prompt
返回string
,因此应该将其与string
:进行比较
var replay = "1";
while (replay === "1") {
replay = prompt("Yes(1) or No(0) ?");
}
相关文章:
- 基于两个条件退出While循环
- 希望日期开始结束于while循环中的一个房间id的一个数组
- 为什么我的While循环不起作用
- 使用while循环+break是一种可接受的方式;goto;手术的结束
- 如何将while循环中生成的值存储到变量中,以便以后在JQuery中使用
- jquery,while循环在后台运行,同时while循环
- jquery悬停和while循环
- Javascript:用while循环在给定的count参数中重复一个字符串
- 如何修复 while 循环
- Jquery扩展点的宽度,同时通过while循环递增
- 斐波那契序列Javascript做while循环
- 为什么这个while循环不能使用AND逻辑运算符
- bluebird promise的while()循环正确(无递归?)
- JavaScript while循环没有'不能在有条件的情况下工作
- While循环在JavaScript中永远运行
- 逻辑(JSint友好)等效于while循环中的此赋值
- Javascript:用if语句运行while循环,用子句随机生成内容
- 如何使javascript在SQL while循环中回显所有数据
- 使用ajax循环while中的多个表单
- JavaScript 中的无限循环 - while 循环