2017-02-10 2 views
0


Je travaille actuellement sur du code, dans lequel j'ai essayé de programmer un KI très faible. Je l'ai fait avec une boucle sans fin avec des invites et si des déclarations. Mais après la première instruction if je ne pouvais plus ajouter ifs sans, que la boucle ne fonctionnerait plus. J'ai essayé beaucoup de choses mais rien ne semble fonctionner. J'espère que vous pouvez me aider ...Javascript si la déclaration annule la boucle?

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

Nous vous remercions à l'avance

+0

« ne fonctionnerait plus »? – Sebas

+0

Je ne suis pas clair ce que vous demandez –

Répondre

3

Vous devez écrire booléennes en minuscules:

(eingabe.includes("gut")===True) devrait être (eingabe.includes("gut")===true)

EDIT

Je vous préférez (je sais que je fais), vous pouvez effectivement omettre la partie === true. .includes retourne un booléen de toute façon:

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

Est-ce que la même chose.

0

Dans ce if:

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

True sera considéré comme un nom de variable. Parce que les mots-clés javascript sont tous en minuscules, et javascript est un case sensetive langue. Cela signifie que si un mot-clé contient une lettre majuscule, il ne s'agit plus d'un mot-clé mais d'un nom de variable. Donc, cela fonctionne très bien:

var whiLe = 5; 
 

 
console.log(whiLe); // work fine

mais ce ne sera pas:

var while = 5; 
 

 
console.log(while); // error

Voici un lien de tous les reserved keywords en javascript.

Note: que inludes déjà renvoie une valeur booléenne donc il n'y a pas besoin de le comparer avec true, tout cela suffira:

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