21
7

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文#3 〜for文を完全攻略!-ネストfor編-~

Posted at

はじめに

配列やfor文の基本を押さえたら、次はネストfor文(for文の中にfor文)をマスターしよう!
二重ループは「二重の繰り返し処理」を行いたいときに使う構文で、全パターンの組み合わせや表形式データの処理などに欠かせないよ。

この記事では、ネストfor文の書き方、動きのイメージ、よくあるミスを整理していくよ。今回は自分のパーティと相手ポケモンのパーティの総当たり表を作る例で説明するよ。これで「どのポケモンがどの相手に強いのか」を一覧で見られるようになるんだ。


🎓 ネストfor文の基本構造

for (int i = 0; i < outerLimit; i++) {
    for (int j = 0; j < innerLimit; j++) {
        // 内側ループの処理
    }
}
  • 外側ループが1回回る間に、内側ループがすべて回る
  • 表やリストの縦横を走査するような動き

⚡ 例:自分のポケモン×相手ポケモンの総当たり表

String[] myTeam = {"ピカチュウ", "カビゴン", "ゲンガー"};
String[] enemyTeam = {"フシギダネ", "ゼニガメ", "ヒトカゲ"};

for (String myPoke : myTeam) {
    for (String enemyPoke : enemyTeam) {
        System.out.println(myPoke + " vs " + enemyPoke);
    }
}
  • 外側ループで自分のポケモンを選び、内側ループで相手のポケモンを選ぶ
  • 全組み合わせ(3×3=9パターン)を網羅して表示できる

条件付きネストfor

組み合わせの中から特定条件だけ表示することも可能。

for (String myPoke : myTeam) {
    for (String enemyPoke : enemyTeam) {
        if (myPoke.equals("ピカチュウ") && enemyPoke.equals("ゼニガメ")) {
            System.out.println(myPoke + "は" + enemyPoke + "に強い!");
        }
    }
}
  • 実際のバトルシミュレーションでは、ここでタイプ相性の計算を行って勝率や
    有利不利を判定できる

🐛 よくあるエラーパターン

 1. 変数名の衝突

for (int i = 0; i < 3; i++) {
    for (int i = 0; i < 3; i++) { // NG: 同じ名前の変数iを再宣言
        System.out.println(i);
    }
}

➡ 対策: 外側と内側で別の変数名を使う(例: ij

 2. 範囲の取り違え

for (int row = 0; row < table.length; row++) {
    for (int col = 0; col < table.length; col++) { // NG: 列数に行数を使っている
        System.out.println(table[row][col]);
    }
}

➡ 対策: 列は table[row].length を使う

 3. 処理の重複

  • 条件設定が甘いと同じ組み合わせを何度も処理してしまう

🪄 次回予告

次は breakcontinue を使ったループ制御!条件を満たしたら即終了、
特定条件をスキップするテクニックを解説するよ!

ピッピカチュウ!!


あとがき

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

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

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

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

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


21
7
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
21
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?