【java入門】簡単理解!2重のfor文の使い方

2重のfor文
  • このエントリーをはてなブックマークに追加
  • Pocket

for文を2重で組み合わせて使う場面は非常によくある。例えば、多次元配列を出力する際などによく使われる。

実際に動きがどうなるか、確認してみよう。

for文を組み合わせて2重で使う

Javaのfor文は他のfor文と組み合わせて用いることもできる。for文を並べて書いたり、for文の中にもうひとつfor文を書いたりして組み合わせて利用することができる。

では、さっそくサンプルを見てみよう。

for文を並べて書くサンプルプログラム

このサンプルプログラムは、初期値が異なるfor文を並べて書いて、九九のそれぞれの桁を個別に表示している。

public class MultiplicationTablesUsingFor {
    public static void main(String[] args) {
        for (int number1 = 1, number2 = 1; number2 <= 9; number2++){//[1]
            System.out.print("" + number1 + "x" + number2 + "=" + (number1 * number2) + " ");//[2]
        }
        System.out.println("");//[3]
        for (int number1 = 2, number2 = 1; number2 <= 9; number2++){//[4]
            System.out.print("" + number1 + "x" + number2 + "=" + (number1 * number2) + " ");//[5]
        }
        System.out.println("");//[6]
        for (int number1 = 3, number2 = 1; number2 <= 9; number2++){//[7]
            System.out.print("" + number1 + "x" + number2 + "=" + (number1 * number2) + " ");//[8]
        }
        System.out.println("");//[9]
        for (int number1 = 4, number2 = 1; number2 <= 9; number2++){//[10]
            System.out.print("" + number1 + "x" + number2 + "=" + (number1 * number2) + " ");//[11]
        }
        System.out.println("");//[12]
        for (int number1 = 5, number2 = 1; number2 <= 9; number2++){//[13]
            System.out.print("" + number1 + "x" + number2 + "=" + (number1 * number2) + " ");//[14]
        }
        System.out.println("");//[15]
        for (int number1 = 6, number2 = 1; number2 <= 9; number2++){//[16]
            System.out.print("" + number1 + "x" + number2 + "=" + (number1 * number2) + " ");//[17]
        }
        System.out.println("");//[18]
        for (int number1 = 7, number2 = 1; number2 <= 9; number2++){//[19]
            System.out.print("" + number1 + "x" + number2 + "=" + (number1 * number2) + " ");//[20]
        }
        System.out.println("");//[21]
        for (int number1 = 8, number2 = 1; number2 <= 9; number2++){//[22]
            System.out.print("" + number1 + "x" + number2 + "=" + (number1 * number2) + " ");//[23]
        }
        System.out.println("");//[24]
        for (int number1 = 9, number2 = 1; number2 <= 9; number2++){//[25]
            System.out.print("" + number1 + "x" + number2 + "=" + (number1 * number2) + " ");//[26]
        }
    }
}

実行結果

1x1=1 1x2=2 1x3=3 1x4=4 1x5=5 1x6=6 1x7=7 1x8=8 1x9=9
2x1=2 2x2=4 2x3=6 2x4=8 2x5=10 2x6=12 2x7=14 2x8=16 2x9=18
3x1=3 3x2=6 3x3=9 3x4=12 3x5=15 3x6=18 3x7=21 3x8=24 3x9=27
4x1=4 4x2=8 4x3=12 4x4=16 4x5=20 4x6=24 4x7=28 4x8=32 4x9=36
5x1=5 5x2=10 5x3=15 5x4=20 5x5=25 5x6=30 5x7=35 5x8=40 5x9=45
6x1=6 6x2=12 6x3=18 6x4=24 6x5=30 6x6=36 6x7=42 6x8=48 6x9=54
7x1=7 7x2=14 7x3=21 7x4=28 7x5=35 7x6=42 7x7=49 7x8=56 7x9=63
8x1=8 8x2=16 8x3=24 8x4=32 8x5=40 8x6=48 8x7=56 8x8=64 8x9=72
9x1=9 9x2=18 9x3=27 9x4=36 9x5=45 9x6=54 9x7=63 9x8=72 9x9=81

サンプルプログラムの説明

それでは簡単にプログラムの解説をしてゆこう。

  • [1] [変数number1を宣言し、初期値の1を代入する。変数number2を宣言し、初期値の1を代入する。number2を9になるまでインクリメントする。
  • [2] number1 * number2の表示を繰り返す。
  • [3] 改行する。
  • [4] 変数number1を宣言し、初期値の2を代入する。変数number2を宣言し、初期値の1を代入する。number2を9になるまでインクリメントする。
  • [5] number1 * number2の表示を繰り返す。
  • etc

あとは繰り返しだ。

for文の中にfor文を書いたサンプルプログラム

このサンプルプログラムは、for文の中にさらにもうひとつfor文を書くことによって、掛け算の九九を表示している。

public class MultiplicationTablesUsingNestedFor {
    public static void main(String[] args) {
        for (int number1 = 1; number1 <= 9; number1++ ){//[1]
            for (int number2 = 1; number2 <= 9; number2++){//[2]
                System.out.print("" + number1 + "x" + number2 + "=" + (number1 * number2) + " ");//[3]
            }
            System.out.println("");//[4]
        }
    }
}

実行結果

「for文を並べて書くサンプルプログラム」と同じ結果になる。

サンプルプログラムの説明

それでは簡単にプログラムの解説をしてゆこう。

  • [1] 変数number1を宣言し、初期値の1を代入する。number1を9になるまでインクリメントする。
  • [2] 変数number2を宣言し、初期値の1を代入する。number2を9になるまでインクリメントする。
  • [3] number1 * number2の表示を繰り返す。
  • [4] 改行する。

まとめ

 このページでは2重のfor文についてお伝えした。for文の中にfor文が登場するのはプログラムではよくあるので、慣れてしまおう。

  • このエントリーをはてなブックマークに追加
  • Pocket

このページの続きや関連ページは下記から一覧で確認できます。

IT講師に興味はありませんか?

・「今までIT講師をやってきたが、更に多くの講義を行いたい」

・「エンジニアとしてやってきたが講師業に魅力を感じている」

・「講師として活躍するためにベースとなる知識を知りたい」

・「様々な分野や言語の講師にチャレンジしてみたい」


という方はぜひIT講師募集のページをご覧ください。


リスキルテクノロジーでは「受講している方々にITを好きになってもらう」ことを目標に、同じ目標に向かって歩んで行ける講師の方を常に探しています。


システム開発やインフラ構築などのエンジニアリング経験を活かし、新入社員などの未経験者や経験の浅い初学者の方々に対してITトレーニングを行っていただくことになります。


テキストやカリキュラムは事前に用意されており、それらを元に講義を進めていくため、IT講師をはじめて実施する方でも安心してトレーニングを実施できます。


IT講師募集のページを見る

SNSでもご購読できます。

コメントを残す

*

未経験からの育成制度も充実
IT講師に興味はありませんか?

リスキルテクノロジーでIT講師の積極募集を開始! 経験・未経験問わずご応募可能。育成制度で講師スキル向上も目指せます

IT講師に応募する