Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用调试器在列表上迭代的奇怪行为_Java_Debugging_Intellij Idea_Iterator - Fatal编程技术网

Java 使用调试器在列表上迭代的奇怪行为

Java 使用调试器在列表上迭代的奇怪行为,java,debugging,intellij-idea,iterator,Java,Debugging,Intellij Idea,Iterator,在以下代码中: for (Iterator<MyClass> iterOuter = mList1.iterator(); iterOuter.hasNext();) { mClass1 = iterOuter.next(); for (Iterator<MyClass> iterInner = mList2.iterator(); iterInner.hasNext();) { mClass2 = iterInner.next();

在以下代码中:

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
        }
    }
}
for(迭代器iterOuter=mList1.Iterator();iterOuter.hasNext();){
mClass1=iterOuter.next();
for(迭代器iterInner=mList2.Iterator();iterInner.hasNext();){
mClass2=iterInner.next();
如果(…){
持续
}
否则如果(…){
//代码1
}
否则如果(…){
持续
}
否则如果(…){
//代码2
}
}
}
编辑:
code 1&2
是数学计算,在任何时候都不会添加或删除迭代器

当我用调试器检查它时,我注意到在最后一次内部迭代之后,当我期望调试器跳转到内部
for
行时,检查条件,然后实现它的循环结束,并跳回外部
for
循环

相反,在内部
for
检查之后(当不满足条件并且需要跳回外部时),调试器跳转到带有
//code 2
的行,不在那里执行代码,然后跳回外部
for


这里发生了什么事?这是调试器的问题还是java的问题?
if-else-if
结构与
continue
等有关?

@luigimendoza您在消费中的意思是什么?我使用
mClass1
进行计算,但我不会向
iterOuter
添加或删除元素<代码>代码1和代码2只是数学计算。这似乎很奇怪,但如果代码保持不变,就不会发生这种情况。您是否尝试过隔离问题并用其他方法重现它?你能在这里分享这段代码吗?@LuiggiMendoza这是一段孤立的代码这听起来像是Java 1.6调试器中的一个已知错误,带有增强的for循环。您是否碰巧在1.6虚拟机上运行此功能?见@JJF谢谢你的好意!我运行的是1.8,我怀疑这是调试器中的某种“glidtch”,而不是我所做的错误。