如何打破 Dart 中的嵌套循环
Posted
技术标签:
【中文标题】如何打破 Dart 中的嵌套循环【英文标题】:How to break out of nested loops in 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
如何跳出外循环?
【问题讨论】:
【参考方案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;
【讨论】:
我想链接到文档中的标签,但找不到好地方。如果你知道它在哪里,请告诉我。以上是关于如何打破 Dart 中的嵌套循环的主要内容,如果未能解决你的问题,请参考以下文章
如何打破 Objective-C 中的两个嵌套 for 循环?