我目前正在研究一些代码,其中我试图编写一个非常弱的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);
先谢谢你
答案 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") ) {
// ...