while循环满足条件后不停止
while-loop doesnt stop after meeting the condition
刚开始使用 Javascript 并努力编写一些非常简单的代码:
"use strict";
function math () {
if (action == "+") {
return answer = firstNumber + secondNumber
}
else if (action == "-") {
return answer = firstNumber - secondNumber
}
else {
while(action != "+" || action != "-") {
action = prompt('Write an action (only "+" and "-" supported!!!):');
}
}
}
math(firstNumber, secondNumber,action);
alert(answer);
即使循环中的条件为假,循环仍会执行。你能解释一下出了什么问题吗?请不仅仅是解决方案。
while(action != "+" || action != "-")
将始终计算为 True
while(action != "+" && action != "-")
就是您要找的
这里的错误在于while循环条件语句。
while(action != "+" || action != "-")
如果 action 不等于“+”或“-”,此语句将继续循环。如果 action 是“+”,我们继续循环,因为 action 不等于“-”。要解决此问题,请将您的运算符更改为 && 而不是 ||像这样:
while(action != "+" && action != "-")
首先,您不需要在那里编写 while 块,因为编译器将检查前两个 if 语句,即 if 和 else if(按顺序)并且不会执行其中任何一个,这意味着action != "+" 还有 != "-" 所以你可以直接这样写 :
"use strict";
function math () {
if (action == "+") {
return answer = firstNumber + secondNumber
}
else if (action == "-") {
return answer = firstNumber - secondNumber
}
else {
action = prompt('Write an action (only "+" and "-" supported!!!):');
}
}
}
math(firstNumber, secondNumber,action);
alert(answer);
它也不会停止,因为它会 运行 直到 while 条件为 False,但如果操作是 !=“+”或“-”,这意味着 while 条件将始终为真,因为错误的操作有被采用,所以 while 循环将 运行 无限...尝试用“if 语句”或 || 替换 while while 循环中的运算符与 && operator
我猜,您只是在制定条件时犯了一个错误,很可能只想继续循环,直到输入的操作不是这两个值中的任何一个。因此,您必须使用 and &&
而不是 or ||
运算符。
换句话说:您想继续,直到该值不是加号也不是减号。
刚开始使用 Javascript 并努力编写一些非常简单的代码:
"use strict";
function math () {
if (action == "+") {
return answer = firstNumber + secondNumber
}
else if (action == "-") {
return answer = firstNumber - secondNumber
}
else {
while(action != "+" || action != "-") {
action = prompt('Write an action (only "+" and "-" supported!!!):');
}
}
}
math(firstNumber, secondNumber,action);
alert(answer);
即使循环中的条件为假,循环仍会执行。你能解释一下出了什么问题吗?请不仅仅是解决方案。
while(action != "+" || action != "-")
将始终计算为 True
while(action != "+" && action != "-")
就是您要找的
这里的错误在于while循环条件语句。
while(action != "+" || action != "-")
如果 action 不等于“+”或“-”,此语句将继续循环。如果 action 是“+”,我们继续循环,因为 action 不等于“-”。要解决此问题,请将您的运算符更改为 && 而不是 ||像这样:
while(action != "+" && action != "-")
首先,您不需要在那里编写 while 块,因为编译器将检查前两个 if 语句,即 if 和 else if(按顺序)并且不会执行其中任何一个,这意味着action != "+" 还有 != "-" 所以你可以直接这样写 :
"use strict";
function math () {
if (action == "+") {
return answer = firstNumber + secondNumber
}
else if (action == "-") {
return answer = firstNumber - secondNumber
}
else {
action = prompt('Write an action (only "+" and "-" supported!!!):');
}
}
}
math(firstNumber, secondNumber,action);
alert(answer);
它也不会停止,因为它会 运行 直到 while 条件为 False,但如果操作是 !=“+”或“-”,这意味着 while 条件将始终为真,因为错误的操作有被采用,所以 while 循环将 运行 无限...尝试用“if 语句”或 || 替换 while while 循环中的运算符与 && operator
我猜,您只是在制定条件时犯了一个错误,很可能只想继续循环,直到输入的操作不是这两个值中的任何一个。因此,您必须使用 and &&
而不是 or ||
运算符。
换句话说:您想继续,直到该值不是加号也不是减号。