2017-02-10 5 views
0


В настоящее время я работаю над некоторым кодом, в котором я пытался программировать очень слабый KI. Я сделал это с бесконечным циклом while с подсказками и операторами if. Но после первого оператора if я больше не мог добавить ifs без, чтобы цикл больше не работал. Я много пробовал, но ничего не работает. Я надеюсь, что вы можете мне помочь ...Javascript, если оператор отменяет цикл while?

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);

Спасибо заранее

+0

«не будет работать больше»? – Sebas

+0

Я не понимаю, что вы просите –

ответ

3

Вам нужно написать булевы литералы в нижнем регистре:

(eingabe.includes("gut")===True) должен быть (eingabe.includes("gut")===true)

EDIT

Я предпочитаю (я знаю, что знаю), вы можете фактически опустить часть === true. .includes возвращает логическое значение в любом случае:

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

ли то же самое.

0

В этом if:

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

True будет рассматриваться как имя переменной. Поскольку ключевые слова javascript все нижние, а javascript - это case sensiveive. Это означает, что если ключевое слово содержит заглавную букву, то это уже не ключевое слово, а имя переменной. Так что это будет работать нормально:

var whiLe = 5; 
 

 
console.log(whiLe); // work fine

, но это не будет:

var while = 5; 
 

 
console.log(while); // error

Вот ссылка всего на reserved keywords в JavaScript.

Примечание: что inludes уже возвращает логическое значение, поэтому нет никакой необходимости, чтобы сравнить его с true, только это будет достаточно:

if(eingabe.includes("gut")) { 
    // ... 
Смежные вопросы