在 JavaScript 中循环直到满足条件
Posted
技术标签:
【中文标题】在 JavaScript 中循环直到满足条件【英文标题】:Loop in JavaScript until a condition is met 【发布时间】:2016-05-02 22:19:16 【问题描述】:我正在尝试无限循环,直到满足条件...以下是否正确?
好像没有。
var set = false;
while(set !== true)
var check = searchArray(checkResult, number);
if(check === false)
grid.push(number);
set = true;
【问题讨论】:
好像不是。真的吗?你能说得更具体点吗? 嗯...我只是想知道我是否可以摆脱这样的循环以及它是否应该工作。如果看起来正确,那么问题一定出在其他地方。 如果不知道searchArray
做什么或checkResult
和number
是什么,我们怎么可能知道
另外添加你的问题是它循环无穷大还是在第一次迭代中停止或或或...
number - 是一个随机生成的数字。 searchArray - 就是这样做的。在数组中搜索生成的数字。它返回真或假。如果数字不在数组中...我将其添加到网格中。并将更改设置为 true。我只是想知道我的语法是否真的正确。非常感谢:D
【参考方案1】:
基本上,您可以使用此模式创建一个无限循环,并在循环中的任意位置添加一个中断条件,使用语句break
:
while (true)
// ...
if (breakCondition)
break;
【讨论】:
到底有没有休眠这个功能?不想垃圾邮件.. @ScipioAfricanus,不,这种模式不可能......【参考方案2】:当 searchArray 结果为不为假时,代码将循环,直到它变为假。所以如果你想实现这样的行为,代码是正确的,否则它是不正确的。
【讨论】:
【参考方案3】:让我们回顾一下。您希望代码循环直到函数 searcharray() 返回 true,对吗?
首先,代码创建变量“set”并将其设置为 false。
然后当 set not 等于 true 时(建议在这里使用三等号),运行以下代码:
创建变量“check”并将其设置为 searcharray 返回的值。
如果 searcharray 返回 false,它将在数组网格的末尾添加一个数字作为新条目,然后将“set”设置为 true。
然后它再次循环。如果 searcharray 返回 true,它会再次循环,因为 set 仍然为 false。如果搜索数组返回false,则不再循环,直接跳到最后。
【讨论】:
就是这样。 Nina Scholz 的以下回答似乎是最好的解决方案。不需要另一个变量。以上是关于在 JavaScript 中循环直到满足条件的主要内容,如果未能解决你的问题,请参考以下文章