为什么这个while循环无限运行?

时间:2017-04-29 19:16:12

标签: javascript

为什么这段代码会运行无限循环? 我在提示符中键入的所有内容都返回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);
}




1 个答案:

答案 0 :(得分:1)

非空stringtruthy值,因此OR条件为真。这就是为什么你有一个无限循环。您需要在每个字符串之前设置userChoice !=

此外,您应该使用AND运算符来检查userChoice是否都不是预期值。

while (userChoice != "stäng av tvn" && userChoice != "gå utomhus" && "fyll glaset med vodka" && userChoice != "avsluta")