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文が登場するのはプログラムではよくあるので、慣れてしまおう。



