016-Javaの基本-配列のネストとfor文【新人エンジニアが最初に覚えたい100のJava文法】

ユーチューブ動画

配列のネストとfor文について解説します。

ソースコード

public class ExampleArrayNestFor {
	public static void main(String[] args) {
		int score[][] = { { 100, 80, 90, 90 },
						{ 90, 90, 90, 90 },
						{ 60, 90, 80, 70 } };
		String label[] = { "Tom", "John", "Mary" };
		for(int i = 0; i < score.length; i++){
			System.out.print(label[i] + "'s score:");
			for(int j = 0; j < score[i].length; j++){
				System.out.print(score[i][j] + " ");
			}
			System.out.println();
		}
	}
}

解説

配列のネストとfor文について解説します。

ネスト(nest)とは元々ハチやアリの巣のことで、部屋の中に部屋があるイメージです。

配列のネストもfor文などの繰り返し構造と相性がよく、上手に記述すれば、短いコードで多くの処理を実行することができます。

サンプルコードを確認しましょう。

配列のscoreは、配列のネストが利用されています。

100 80 90 90という配列、90 90 90 90という配列、60 90 80 70 という配列、

この3つの配列を1つにまとめた配列になっています。

文字列の配列として、Tom John Maryの3つ文字列が配列labelに格納されています。

最初のfor文を確認しましょう。変数int i=0は初期値ですね、score.lengthの部分は、

配列の要素数を示します。配列scoreは、配列のネスト全体を示しますから、

要素数は3となります。変数iは0、1、2と繰り返します。

内側のfor文を確認しましょう。

変数j=0が初期値です。

Score[i].lengthは最初のfor文によって、値が変わります。

今回は、どの配列をとっても、要素が4となりますから、score[0].length、score[1].length、score[2].lengthとなって、それぞれの要素数は4となります。

まとめると、変数iが0のとき、変数jが0、1、2、3、と繰り返し、

変数iが1のとき、また変数jが0、1、2、3と繰り返していくという流れになり、

配列の要素が出力されるという形になります。

結果を確認しましょう。Printになっているところは、改行しないので、右の方向に出力されます。

ラベルの文字列を出力して、変数jの繰り返しを出力して、1行分終わると、printlnメソッドが呼び出されて改行するといった結果になります。

ちょっと難しいコードですが、ブロックの単位でどんな処理をしているのか、まとめるとわかりやすくなます。

慌てずに一つ一つ整理して、進めてみてください。

以上、配列のネストとfor文について解説しました。

このサンプルコードをJavaタッチタイプゲームとして遊ぶことができます。