13
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【ポケモン×Java】知識編 for文 番外編 ~for文あるあるエラー集~

Posted at

はじめに

for文はシンプルで便利だけど、ちょっとした書き方ミスが思わぬエラーや不具合を招くこともあるよ。今回は番外編として、よくあるfor文のエラーパターンをまとめたよ。エラーの原因と出力例をセットで確認して、初心者でも「何が間違いか」をすぐに理解できるようにしてみた。


1. 添字ミス

例:i <= arr.length による配列範囲外アクセス

int[] arr = {1, 2, 3};
for (int i = 0; i <= arr.length; i++) { // <= が原因でエラー
    System.out.println(arr[i]); // IndexOutOfBoundsException
}

出力例

1
2
3
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 3 out of bounds for length 3

対策:配列の末尾まで回すときは < arr.length を使う。


2. 無限ループ

例:更新忘れや条件ミス

for (int i = 0; i < 3; ) { // 更新式なし
    System.out.println(i);
}

出力例(抜粋)

0
0
0
...(延々と続く)

対策:条件と更新の整合性を確認。終了条件を満たす増減が行われているか必ずチェック。


3. ++iとi++の混乱

例:意図と異なる値の出力

for (int i = 0; i < 3; ) {
    System.out.println(++i); // 加算後の値を出力
}

出力例

1
2
3

例:意図する値の出力

for (int i = 0; i < 3; ) {
    System.out.println(i++); // 出力後に加算
}

出力例

0
1
2

ポイント

  • ++i は「加算してから使う」
  • i++ は「使ってから加算する」
    対策:インクリメントのタイミングを意識して使い分ける。
       カウンタ用途では違いが重要。
     

4. スコープ衝突

例:for内と外で同名変数を使用

int i = 0;
for (int i = 0; i < 5; i++) { // コンパイルエラー
    System.out.println(i);
}

エラーメッセージ例

error: variable i is already defined in method main(String[])

対策:変数名の再利用は避ける。役割が明確な名前を付ける。


5. continue/breakの誤用

for (int i = 0; i < 5; i++) {
    if (i == 2)
        break; // 本当はスキップしたかったが終了してしまう
    System.out.println(i);
}

出力例

0
1

対策:処理をスキップしたいならcontinue、完全に抜けたいならbreakを使う。


6. 境界条件の勘違い

for (int i = 10; i > 0; i++) { // 条件と更新の向きが逆
    System.out.println(i); // 無限ループに近い動き
}

対策:開始値・終了条件・更新の方向が一致しているか必ず確認。


まとめ

  • 添字や条件式の境界は丁寧に確認
  • 更新忘れや方向ミスは無限ループの温床
  • インクリメント位置・スコープの扱いに注意
  • breakとcontinueは意図に応じて正しく選択
  • 実行結果を予想するクセをつけるとバグ防止に効果的

あとがき

ここまで読んでくれて、本当にありがとうございました。

「プログラミングって難しい…」って思ってた人も、
「ちょっと楽しいかも…!」って思ってもらえたらうれしいな。

次の投稿も、よろしくおねがいします。

💬 コメント・フィードバック歓迎!

「この章わかりやすかった!」
「これ表現まちがってない?」
「次は○○をやってほしい!」などなど、
お気軽にコメントで教えてくださいね!


13
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?