我的代码大致如下所示:
START
Recursive method A
print("Before Loop")
loop:
for(Object o: list)
{
print("Outer loop top")
for(Object ob: list2)
{
print("Inner loop top")
//do stuff with o & ob e.g. recursively call method A under certain conditions
if(someCondition true)
{
print("Entered")
break loop;
}
print("Inner loop bottom")
}
print("Outer loop bottom")
}
print("After Loop")
END
当程序进入 someCondition 为 true 的 if 语句时,它会打印
Entered
然后它似乎成功地从两个 for 循环中中断,因为它接下来打印
After Loop
接着!!在控制台中打印
inner loop bottom
Outer Loop bottom
Outer loop top
inner loop top
etc.
这怎么可能。方法 A 从超过 1 个地方递归调用,但是,如果下一次打印“内循环底部”的原因,因为该方法再次递归启动,它不会首先打印“内循环底部”!但是会打印“Before loop”,然后是“Outer loop top”,然后是“Inner loop top”,然后是“inner loop bottom”。根据打印语句,它从两个循环中中断,然后跳回到内循环的底部并继续循环通过内循环。到底是怎么回事。请帮忙!谢谢