【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>java Lesson042
中居正広
木村拓哉
稲垣吾郎
草彅剛
香取慎吾
城島茂
国分太一
長瀬智也
松岡昌宏
山口達也
大野智
二宮和也
相葉雅紀
松本潤
櫻井翔
このように、for構文の中にfor構文をいれ、繰り返し処理をすることで2次元配列のデータを全て出力できます。
2.プログラムの解説
1.lengthについて
lengthを用いれば配列(1次元配列)のデータの個数(要素数)を取得できましたが、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次元配列の全てのデータを出力できます。
コメント
まだコメントはありません。