gpt4 book ai didi

JavaScript While 循环条件异常

转载 作者:行者123 更新时间:2023-12-03 23:31:40 26 4
gpt4 key购买 nike

我很好奇为什么这个 while 循环没有按预期中断。据我了解,在使用 OR 运算符 (||) 时,如果发现任何条件为假,循环就会中断。

但是,我在一份测试文档中注意到(我是第一次学习 JS),我的 while 循环要求在中断之前发现所有条件都为假。

这是一个 stub 示例:

var stringName="", numhours=0, numRate=0;

document.write("Exit at any time by entering -1");
while (stringName != "-1" || numHours != -1 || numRate != -1){
stringName = prompt("Enter name","");
numHours = prompt("Enter num hours","");
numHours = parseFloat(numHours);
numRate = prompt("Enter rate per hour","");
numRate = parseFloat(numRate);
}

我希望用户可以在任何阶段输入 -1,一旦循环完成,它将再次重新检查条件,并在发现名称不等于“-”是错误的之后1”,或者工时不等于-1为false,或者工资不等于-1为false,就会打破循环。

相反,循环似乎要求满足所有这些条件才能退出,其中 name == "-1"AND hours == -1 AND wage == -1,只有这样它才会中断。

如有任何见解,我们将不胜感激。你们摇滚!

最佳答案

您对 OR 运算符的理解倒退了。您将其视为 AND

代替:

It is my understanding that when using the OR operator (||), if any of the conditions are found to be false, the loop breaks.

其实是

If any of the conditions are found to be true, the loop continues.

要解决此问题,您可以将循环重写为:

while (stringName !== "-1" && numHours !== -1 && numRate !== -1)

此外,最好使用 !== 而不是 != 因为 != 会做一些奇怪的事情,称为类型强制,可以给你出乎意料的结果。

关于JavaScript While 循环条件异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35191744/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com