私はfor-loopが512のインデックス(インデックス範囲0-511)の配列を実行しています。しかし、i == 512の場合、ArrayIndexOutOfBounds例外がスローされてループに入ります。私は私==に停止条件を設定してデバッグモードで実行すると、以下のスクリーンショットは、誰もが、このループは終了条件であっても後のサイクルに続けている理由を任意のアイデアを持っている512Java forループが終了する出口条件
私のコードを示します会った?
私はfor-loopが512のインデックス(インデックス範囲0-511)の配列を実行しています。しかし、i == 512の場合、ArrayIndexOutOfBounds例外がスローされてループに入ります。私は私==に停止条件を設定してデバッグモードで実行すると、以下のスクリーンショットは、誰もが、このループは終了条件であっても後のサイクルに続けている理由を任意のアイデアを持っている512Java forループが終了する出口条件
私のコードを示します会った?
あなたのループ条件は次のとおりです。
i < frameSet * associativity + associativity
デバッガによると、現在の値がtrueと評価され、512 < 64 * 8 + 8
または512 < 520
です。そのため、ループはまだ実行されています。
ありがとう!私はそれに気付かなかった。私がvalidBits []を初期化したときのように見えます。配列のサイズをセット数よりもむしろセット数に設定しました。 (8ウェイ・セット・アソシエイティブ・キャッシュは512セットで、512ではなく4096フレームを持つ必要があります) –
コードはどこですか? – Jack
@Jack、私はスクリーンショットとしてIDEからのすべてのデバッグ情報を含めるように投稿しました。 –
あなたのコードをSOに投稿する方法ではありません。イメージは詳細を追加できますが、コードはIDEのスクリーンショットではなく、単なるコードでなければなりません。 https://meta.stackoverflow.com/questions/303812/discourage-screenshots-of-code-and-or-errors – Jack