私は、次のループ動作し、本当に混乱した時間を持っている: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?
私の知る限りでは、私はそれがfor
ループが働いていた方法ですと思っているので、このループは、6
より決して出力indexPos
の値も大きくする必要があります。 controlPoints
はget
ループ内の値ですが、break
の後には、数値が再び増加します。私はループの終わりまで数が増えないと思った?これは間違っていますか?ポストインクリメントの代わりにプリインクリメントを組み込むべきですか?
あなたは 'size'、' sourceModuleValue 'と' controlPoints'値を投稿してもらえますか? –
完全な最小限の例を示してください。 – OldProgrammer
これらのような状況に遭遇したときは、ループの開始時にブレークポイントをちょうど突き当たり、数回繰り返します。それを把握してみてください:) – Tdorno