【问题标题】:How to break out of nested loops in Dart如何打破 Dart 中的嵌套循环
【发布时间】:2022-01-14 21:15:38
【问题描述】:

给定以下嵌套循环:

for (int i = 0; i < 10; i++) {
  for (var j = 0; j < 10; j++) {
    print('i: $i, j: $j');
  }
}

如果我在内部循环中添加 break 语句:

for (int i = 0; i < 10; i++) {
  for (var j = 0; j < 10; j++) {
    print('i: $i, j: $j');
    break; //                      <-- break
  }
}

它只会跳出内部循环。这是输出:

i: 0, j: 0
i: 1, j: 0
i: 2, j: 0
i: 3, j: 0
i: 4, j: 0
i: 5, j: 0
i: 6, j: 0
i: 7, j: 0
i: 8, j: 0
i: 9, j: 0

如何跳出外循环?

【问题讨论】:

    标签: dart nested-loops break


    【解决方案1】:

    使用标签

    Dart 支持标签。创建一个标签名称并在其后加上一个冒号:

    outerLoop:
    for (int i = 0; i < 10; i++) {
      for (var j = 0; j < 10; j++) {
        print('i: $i, j: $j');
        break outerLoop;
      }
    }
    

    在上面的示例中,标签名称是 outerLoop,但您可以将其命名为其他名称。调用break outerLoop 会跳出outerLoop 前面的for 循环。

    打印出来:

    i: 0, j: 0
    

    从函数返回

    另一种选择是将嵌套循环放在函数中,然后从函数中返回:

    void myFunction() {
      for (int i = 0; i < 10; i++) {
        for (var j = 0; j < 10; j++) {
          print('i: $i, j: $j');
          return;
        }
      }
    }
    

    【讨论】:

    • 我想链接到文档中的标签,但找不到好地方。如果你知道它在哪里,请告诉我。
    猜你喜欢
    • 2012-03-30
    • 2012-01-19
    • 2019-01-30
    • 2010-10-27
    • 1970-01-01
    • 1970-01-01
    • 2016-09-30
    相关资源
    最近更新 更多