for文を2重で組み合わせて使う場面は非常によくある。例えば、多次元配列を出力する際などによく使われる。
実際に動きがどうなるか、確認してみよう。
目次
for文を組み合わせて2重で使う
Javaのfor文は他のfor文と組み合わせて用いることもできる。for文を並べて書いたり、for文の中にもうひとつfor文を書いたりして組み合わせて利用することができる。
では、さっそくサンプルを見てみよう。
for文を並べて書くサンプルプログラム
このサンプルプログラムは、初期値が異なるfor文を並べて書いて、九九のそれぞれの桁を個別に表示している。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
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] } } } |
実行結果
1 2 3 4 5 6 7 8 9 |
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文を書くことによって、掛け算の九九を表示している。
1 2 3 4 5 6 7 8 9 10 |
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文が登場するのはプログラムではよくあるので、慣れてしまおう。