此 JavaScript 代码应无限期运行,直到提供空字符串,但它没有。为什么?


let yourName;
do {
yourName = prompt("Who are you?");
} while (!yourName);
console.log(yourName);

在线教科书中给出了此代码:https://eloquentjavascript.net/02_program_structure.html

我也尝试过以这种方式在控制台中运行它:

let funGame;
do { 
funGame = prompt("enter anything to get rid of this Game");
} while (!funGame); 
console.log(funGame);

我正在使用谷歌chrome浏览器来测试这段代码。这段代码只运行一次,而它应该无限期地运行,直到提供一个空字符串。

;Do While";有效,直到条件成立。在您的情况下,代码希望您必须写一个名称才能从";"一边做";。

let yourName;
do {
yourName = prompt("Who are you?");
} while (!yourName);
console.log(yourName);

如果你不想要这种情况,但另一种情况,你可以删除"quot;在";Do while">

let yourName;
do {
yourName = prompt("Who are you?");
} while (yourName);
console.log(yourName);

在这种情况下,你会遇到相反的情况。

这里有一个简单的解决方案,yourName != null检查提示是否被取消

let yourName;
do {
yourName = prompt("Who are you?");
} while (yourName != "" && yourName != null);
console.log(yourName);

您可以检查字符串的长度并运行循环,直到yourName找到空白内容。

do {
var yourName = prompt("Who are you?");
console.log(yourName);
if (!yourName){
break;
}
} while (yourName.trim().length > 0);

最新更新