Javascript if语句在循环时取消?

时间:2017-02-10 16:11:58

标签: javascript loops if-statement do-while cancellation


我目前正在研究一些代码,其中我试图编写一个非常弱的KI。我已经使用提示和if语句进行了无休止的循环。 但是在第一个if语句之后,我再也无法添加ifs,循环将不再起作用。我尝试过很多东西,但似乎没什么用。我希望你能帮助我...

var b = 1;
var antwort;
do {
  input = prompt(antwort);

  var eingabe = input.toLowerCase();

  var x = Math.round(Math.random() * (6 - 1)) + 1;

  if (eingabe === "hallo" || eingabe === "hi") {
    switch (x) {

      case 1:
        {
          antwort = "Hallo!";
          break;
        }

      case 2:
        {
          antwort = "Na, wie geht es dir?";
          break;
        }

      case 3:
        {
          antwort = "Guten Tag!";
          break;
        }

      case 4:
        {
          antwort = "Hi.";
          break;
        }

      case 5:
        {
          antwort = eingabe + ".";
          break;
        }
    }
  } else if (eingabe.includes("gut") === True) {
    antwort = "Das ist schön"
  } else {
    antwort = "Das habe ich nicht verstanden."
  }
} while (1 === 1);

先谢谢你

2 个答案:

答案 0 :(得分:3)

您需要以全小写形式编写布尔文字:

(eingabe.includes("gut")===True)应为(eingabe.includes("gut")===true)

修改

我更喜欢(我知道),你实际上可以省略=== true部分。 .includes反正返回一个布尔值:

if (eingabe.includes("gut")) {
  //...
}

同样的事情。

答案 1 :(得分:0)

在此if中:

if( eingabe.includes("gut") === True ) {
    // ...

True将被视为变量名称。因为javascript关键字都是小写的,而javascript是案例敏感语言。这意味着如果关键字包含大写字母,那么它不再是关键字而是变量名。所以这样可以正常工作:

var whiLe = 5;

console.log(whiLe); // work fine

但这不会:

var while = 5;

console.log(while); // error

以下是javascript中所有reserved keywords的链接。

注意: inludes已经返回一个布尔值,因此无需将其与true进行比较,只需这样就可以了:

if( eingabe.includes("gut") ) {
    // ...