Javascript if语句取消了while循环?
Javascript if statement cancels while loop?
我目前正在编写一些代码,我试图在其中编写一个非常弱的 KI。我已经通过带有提示和 if 语句的无休止的 while 循环来完成此操作。
但是在第一个 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);
提前致谢
您需要将布尔文字全部小写:
(eingabe.includes("gut")===True)
应该是 (eingabe.includes("gut")===true)
编辑
I you prefer (I know I do), 你实际上可以省略 === true
部分。 .includes
returns 一个布尔值:
if (eingabe.includes("gut")) {
//...
}
做同样的事情。
在此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 的 link。
注意: inludes
已经返回了一个布尔值,所以没有必要将它与 true
进行比较,这就足够了:
if( eingabe.includes("gut") ) {
// ...
我目前正在编写一些代码,我试图在其中编写一个非常弱的 KI。我已经通过带有提示和 if 语句的无休止的 while 循环来完成此操作。
但是在第一个 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);
提前致谢
您需要将布尔文字全部小写:
(eingabe.includes("gut")===True)
应该是 (eingabe.includes("gut")===true)
编辑
I you prefer (I know I do), 你实际上可以省略 === true
部分。 .includes
returns 一个布尔值:
if (eingabe.includes("gut")) {
//...
}
做同样的事情。
在此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 的 link。
注意: inludes
已经返回了一个布尔值,所以没有必要将它与 true
进行比较,这就足够了:
if( eingabe.includes("gut") ) {
// ...