如何在Dart中跳出嵌套循环

8

给定以下嵌套循环:

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

我该如何跳出外层循环?

1个回答

25

使用标签

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;
    }
  }
}

1
我想在文档中链接到标签,但是我找不到一个好的位置。如果你知道它在哪里,请告诉我。 - Suragch

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接