【问题标题】:Continue in nested for loops继续嵌套 for 循环
【发布时间】:2019-11-17 21:24:29
【问题描述】:

我有 3 个 for 循环:

      for (var i = 0; i < ns_match.length; i++) {
        for (var j = 0; j < user_interest.length; j++) {
          for (var k = 0; k < ns_match[j].data().user_interest.length; k++) {
            if (user_interest[j] == (ns_match[i].data().user_interest)[k]) {
              ns_score[i] += 5;
            }
          }
        }
      }

我会添加一个逻辑,例如 if (user_interest[j] == (ns_match[i].data().user_interest)[k]) { 为真,然后增加 j。

换句话说,我正在寻找诸如:if (user_interest[j] == (ns_match[i].data().user_interest)[k]) { 之类的东西,如果这是真的,则跳出 K 循环,但在 J 循环中继续一个增量。

【问题讨论】:

  • 是的,break; ...你有什么问题?
  • 如果你想在下一次迭代时跳过循环体的其余部分,你只需要使用continue。但是身体里没有其他东西可以跳过。
  • 您可以简单地将break; 放入您的if 语句中。这将打破k,并继续j
  • 只是为了传递信息,您可以在 JavaScript 中为语句添加标签,例如 loop1: for(let i = 0; i&lt;10;i++){ ....},然后从所述循环内的任何地方调用类似 continue loop1 的内容。虽然我认为这在这里不会特别有用,但它是很好的信息,而不是 Javascript 中经常记录的东西。 break 语句也是如此。
  • 一般情况下,you can always use labels.

标签: javascript algorithm for-loop continue


【解决方案1】:

使用 break 命令跳出当前循环块。

如果您需要跳出不同于最内层的循环,您可能需要研究所谓的“标签”

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-05-27
    • 1970-01-01
    • 2011-12-01
    • 2015-04-16
    • 2021-12-27
    • 1970-01-01
    • 2021-03-28
    • 1970-01-01
    相关资源
    最近更新 更多