为什么这段代码会运行无限循环? 我在提示符中键入的所有内容都返回null,我不知道为什么。
var userChoice = prompt("Du befinner dig hemma i soffan. Det är mörkt utomhus och TVn är påslagen. På soffbordet ser du ett tomt glas och en flaska vodka." + "\n\n" + "Vad vill du göra? Skriv in ditt val:" + "\n" +
"1. Stäng av TVn" + "\n" + "2. Gå utomhus" + "\n" + "3. Fyll glaset med vodka" + "\n" + "\n" + "4. Avsluta");
while (userChoice != "stäng av tvn" || "gå utomhus" || "fyll glaset med vodka" || "avsluta") {
alert("Skriv in ditt val som det är skrivet i menyn!")
userChoice = prompt("Du befinner dig hemma i soffan. Det är mörkt utomhus och TVn är påslagen. På soffbordet ser du ett tomt glas och en flaska vodka." + "\n\n" + "Vad vill du göra? Skriv in ditt val:" + "\n" +
"1. Stäng av TVn" + "\n" + "2. Gå utomhus" + "\n" + "3. Fyll glaset med vodka" + "\n" + "\n" + "4. Avsluta");
console.log(userChoice);
}

答案 0 :(得分:1)
非空string
是truthy
值,因此OR
条件为真。这就是为什么你有一个无限循环。您需要在每个字符串之前设置userChoice !=
。
此外,您应该使用AND
运算符来检查userChoice
是否都不是预期值。
while (userChoice != "stäng av tvn" && userChoice != "gå utomhus" && "fyll glaset med vodka" && userChoice != "avsluta")