スポンサードリンク

【Java】2次元配列のデータをfor構文で出力する

2次元配列の全てのデータを出力する場合、一つ一つ下のように出力してもプログラム的には問題ないです。

System.out.println(arr[0][0]);
System.out.println(arr[0][1]);
System.out.println(arr[0][2]);


しかし時間的労力的に考えて非現実的です。この場合、for構文を2つ用いればとても簡単に2次元配列のデータを全て出力できます。

1.for構文の中にfor構文を入れる

2次元配列で例示したジャニーズの5人組ユニット(SMAP、TOKIO、嵐)のメンバーが代入された以下の2次元配列から、全ての名前を取り出してみたいと思います。

String[][] menber = new String[][]{
{"中居正広", "木村拓哉", "稲垣吾郎", "草彅剛", "香取慎吾"},
{"城島茂", "国分太一", "長瀬智也", "松岡昌宏", "山口達也"},
{"大野智", "二宮和也", "相葉雅紀", "松本潤", "櫻井翔"}
};

では、「Lesson042.java」というファイルを作成し、以下のJavaプログラムを入力・保存してください。

public class Lesson042{
    public static void main(String args[]){
	//2次元配列menberを用意
	String[][] menber = new String[][]{
	    {"中居正広", "木村拓哉", "稲垣吾郎", "草彅剛", "香取慎吾"},
	    {"城島茂", "国分太一", "長瀬智也", "松岡昌宏", "山口達也"},
	    {"大野智", "二宮和也", "相葉雅紀", "松本潤", "櫻井翔"}
	};
	//for構文の中にfor構文を入れて出力
	for(int i = 0; i<menber.length; i++){
		for(int j = 0; j<menber[0].length; j++){
			System.out.println(menber[i][j]);
		}
	}
    }
}

そして以下のようにコンパイル・実行してください。

C:\Users\ysk\Desktop\java>javac Lesson042.java

C:\Users\ysk\Desktop\java>java Lesson042
中居正広
木村拓哉
稲垣吾郎
草彅剛
香取慎吾
城島茂
国分太一
長瀬智也
松岡昌宏
山口達也
大野智
二宮和也
相葉雅紀
松本潤
櫻井翔

このように、for構文の中にfor構文をいれ、繰り返し処理をすることで2次元配列のデータを全て出力できます。

2.プログラムの解説

1.lengthについて

lengthを用いれば配列(1次元配列)のデータの個数(要素数)を取得できましたが、2次元配列にも応用できます。

まず以下の2次元配列を見てください。

2次元配列の代入例

配列名.length

とすると、Y方向(縦方向)の要素数を取得できます(この場合3)。

配列名[0].length

とすると、X方向(横方向)の要素数を取得できます(この場合5)。

2.forについて

外側のfor構文は2次元配列の縦方向(Y方向)を担当し、内側のfor構文は2次元配列の横方向(X方向)を担当しています。

そして

for(int i = 0; i<menber.length; i++)

の「i<menber.length」で縦方向の繰り返し処理回数を指定し、

for(int j = 0; j<menber[0].length; j++)

の「j<menber[0].length」で横方向の繰り返し処理回数を指定しています。

この繰り返し処理で

  • 変数iが0のとき
     変数jは0と1と2と3と4となる
  • 変数iが1のとき
     変数jは0と1と2と3と4となる
  • 変数iが2のとき
    変数jは0と1と2と3と4となる

そのため

System.out.println(menber[i][j]);

とすることで、2次元配列の全てのデータを出力できます。

コメント

まだコメントはありません。

コメントフォーム
お名前
コメント