我正在努力创建一个循环的函数,直到给出匹配的答案,有没有更好的方法来做到这一点?我意识到我正在污染全局命名空间设置“loopBoolean = false / true”!
function userPrompt() {
var loopBoolean = true;
while(loopBoolean){
var userChoice = prompt("type something").toLowerCase();
if(userChoice === "gogo"){
alert("good answer!");
loopBoolean = false;
}
else{
loopBoolean = true;
}
}
}
userPrompt();
答案 0 :(得分:3)
您没有通过声明变量var loopBoolean
insdie您的函数来污染全局命名空间。
问题是如果您没有使用var
关键字。
更好的重写方法是:
while(prompt("type something").toLowerCase() != "gogo"){
// do sth if you need
}
alert("good answer!");
答案 1 :(得分:0)
不确定为什么你这么烦恼,因为loopBoolean
只是一个函数范围变量,但你可以使用break;
来结束循环,这使得代码更短,更具可读性......
function userPrompt() {
while(true){
var userChoice = prompt("type something").toLowerCase();
if(userChoice === "gogo"){
alert("good answer!");
break;
}
}
}
userPrompt();