我有一个这样的嵌套循环结构:
for (Type type : types) {
for (Type t : types2) {
if (some condition) {
// Do something and break...
break; // Breaks out of the inner loop
}
}
}
Run Code Online (Sandbox Code Playgroud)
现在我怎样才能摆脱两个循环?我看过类似的问题,但没有一个特别关注Java.我无法应用这些解决方案,因为大多数使用了gotos.
我不想把内循环放在不同的方法中.
我不想重新运行循环.当我完成循环块的执行时.
可能重复:
如何在Python中打破多个循环?
是否有一种更容易的方法来打破嵌套循环而不是抛出异常?(在Perl中,您可以为每个循环指定标签,并至少继续外循环.)
for x in range(10):
for y in range(10):
print x*y
if x*y > 50:
"break both loops"
Run Code Online (Sandbox Code Playgroud)
也就是说,有一个更好的方式:
class BreakIt(Exception): pass
try:
for x in range(10):
for y in range(10):
print x*y
if x*y > 50:
raise BreakIt
except BreakIt:
pass
Run Code Online (Sandbox Code Playgroud) 我正在使用多个嵌套for循环.在最后一个循环中有一个if声明.当评估True所有for循环应该停止,但这不会发生.它只break离开最里面的for循环,而不是继续前进.如果break遇到语句,我需要所有循环停止.
我的代码:
for i in range(1, 1001):
for i2 in range(i, 1001):
for i3 in range(i2, 1001):
if i*i + i2*i2 == i3*i3 and i + i2 + i3 == 1000:
print i*i2*i3
break
Run Code Online (Sandbox Code Playgroud)