我在運行下面的循環一個非常混亂的時間:我的for循環發生了什麼?
int indexPos;
for(indexPos = 0; indexPos < size; indexPos++) {
System.out.println(indexPos + "!");
if(sourceModuleValue < controlPoints.get(indexPos).inputValue) {
break;
}
}
System.out.println(indexPos + "?");
我在println
增補所以我可以看到,爲什麼我得到的錯誤。其他一些要注意的事項:在我的程序中,size = 7
和controlPoints
是ArrayList
,但我不認爲這是什麼原因導致我的問題。這裏的讀出:
0!
1!
2!
3!
3?
0!
1!
2!
2?
0!
1!
2!
3!
4!
5!
6!
6?
0!
1!
1?
0!
1!
1?
0!
1!
2!
3!
4!
5!
6!
6?
0!
1!
2!
3!
4!
4?
0!
1!
1?
0!
1!
1?
0!
1!
2!
2?
0!
1!
2!
3!
4!
5!
6!
7?
據我所知,這個循環應該比6
從未輸出的indexPos
值更大,因爲我認爲這是for
迴路是如何工作的。 controlPoints
可以get
循環內的值,但在break
之後,數字再次遞增。我認爲這個數字直到循環結束纔會增加?這是錯的嗎?我應該合併預增量而不是後增量嗎?
你能張貼'size','sourceModuleValue'和'controlPoints'值? –
請顯示一個完整的,最小的例子。 – OldProgrammer
每當遇到像這樣的情況時,最好在循環的開始處插入一個斷點並進行幾次迭代。做到這一點,並試圖找出它:) – Tdorno