【问题标题】:Loop in JavaScript until a condition is met在 JavaScript 中循环直到满足条件
【发布时间】: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 做什么或checkResultnumber 是什么,我们怎么可能知道
  • 另外添加你的问题是它循环无穷大还是在第一次迭代中停止或或或...
  • number - 是一个随机生成的数字。 searchArray - 就是这样做的。在数组中搜索生成的数字。它返回真或假。如果数字不在数组中...我将其添加到网格中。并将更改设置为 true。我只是想知道我的语法是否真的正确。非常感谢:D

标签: javascript while-loop


【解决方案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 的以下回答似乎是最好的解决方案。不需要另一个变量。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-12
    • 2018-06-29
    • 2022-11-23
    相关资源
    最近更新 更多