在以下代码中:
for (Iterator<MyClass> iterOuter = mList1.iterator(); iterOuter.hasNext();) {
mClass1 = iterOuter.next();
for (Iterator<MyClass> iterInner = mList2.iterator(); iterInner.hasNext();) {
mClass2 = iterInner.next();
if (...) {
continue;
}
else if (...) {
//code 1
}
else if (...) {
continue;
}
else if (...) {
//code 2
}
}
}
编辑:code 1 & 2
是数学计算,在任何时刻都不能添加或删除迭代器。
当我用调试器检查它时,我注意到在最后一次内部迭代之后,当我希望调试器跳转到内部for
行检查条件然后实现它的循环结束并跳回到外for
循环。
而是在内部for
检查之后(当条件不满足且需要跳回到外部时)调试器跳转到//code 2
的行,不执行那里的代码然后跳回到外for
。
这里发生了什么?这是调试器的一些问题,还是java的问题,if else if
结构与continue
等?