※前回の講座がまだの人はこちらから
【Java入門⑤】繰り返し ~初心者でも安心!基礎から学べるプログラミング講座~
配列
同じ様な要素を持つ変数は、別々の変数より、一つの変数としてまとめた方が扱いやすいです。
例えば、ユーザーの年齢を変数へ入れて管理したい場合、各ユーザー用の変数を作成し、データを入れる必要があります。
しかし、配列を使えば一つの変数の中に、各ユーザーの年齢のデータを入れることができます。
配列とは?
一つの変数の中に、複数データを入れることに、イメージが湧かないかもしれません。
配列とは、同じ型の変数の集まりだと思ってください。
配列の各箱に、それぞれ値を入れることができます。
配列の箱には番号がついており、0から連番になっています。
紛らわしいですが、「1番目の箱の番号は0、2番目の箱の番号は1」になります。
配列の使い方
配列の宣言
配列を使うにあたって、変数と同様に、配列を宣言する必要があります。
配列の宣言では、型と配列の大きさを指定します。
int型の大きさが5のbという配列を作成します。
値はintの規定値である0が自動で代入されます。
//初期値なし int[] b = new int[5];
さらに、配列作成と同時に初期値として値を入れることができます。
初期値ありの場合は、初期値の個数がそのまま配列の大きさになります。
//初期値あり int[] b = {1, 2, 3, 4, 5};
配列にデータを代入
配列を作成したら、データの代入が可能です。
既にデータが入っている箱は、値の更新になります。
データの代入は、代入したい箱の番号を指定します。
int[] b = {1, 2, 3, 4, 5}; b[3] = 8;
bという配列の3番目に8を代入しました。(既に値が入っていたため、更新になります。)
<使用例>
public class Array { public static void main(String[] args) { //5個の配列本体を生成 int[] num = new int[5]; //配列numの要素数未満繰り返す for(int i = 0; i < num.length; i++) { num[i] = i + 1; } //配列numの要素を先頭から、変数jに代入する処理を、numの要素数分繰り返す for(int j : num) { System.out.println(j); } } }
<実行結果>
拡張for文
先程の配列の要素を取り出している部分で、見慣れないfor文が使われていたと思います。
for(int j : num) { System.out.println(j); }
これは拡張for文と言い、配列の様な複数の要素を持っているものから、全ての要素を順番に取り出してくれるfor文です。
for(型 変数 : 配列など){
処理;
}
取り出された値は、自分で指定した変数の中に入ります。
処理が終わったら次の値を取り出し、次の要素が存在しなければ、for文を終了します。
2次元配列
今まで、配列の中には値を入れてきましたが、値の代わりに配列を入れることができます。
この様な配列を2次元配列と言います。
2次元配列は以下で宣言できます。
//初期値なし int[][] b = new int[3][3];
2次元配列になると、値を取り出す際に、拡張for文を二回書いてやる必要があります。
一回だけだど、配列の中の配列が取り出されるだけで、その配列内の値までは取り出せません。
<使用例>
public class TwoDimensionalArray { public static void main(String[] args) { //3×4の配列本体を生成(初期値あり) int[][] num = {{1, 5, 3}, {2, 3, 6}, {7, 9, 5}, {4, 1, 8}}; //配列numの要素を先頭から、変数iに代入する処理を、numの要素数分繰り返す for(int[] i : num) { //配列iの要素を先頭から、変数jに代入する処理を、iの要素数分繰り返す for(int j : i) { System.out.print(" " + j); } System.out.println(); } } }
<実行結果>
まとめ
配列が扱えると様々なデータをグループ化して管理できます。
2次元配列も、3次元4次元と増やすことができるので、気になる方は試してみてください。