【9章】Javaを学ぼう


今回の記事では、配列について中心に書いていきたいと思います。私自身のアウトプットの場になりますので、よろしくお願いいたします!

配列について

配列とは

変数のセットというようなイメージです。
変数が1つしか値を扱えないのに対し、配列は複数の値をまとめていれておくことが可能です。
配列に入っているそれぞれの値のことを要素と呼びます。

配列の変数定義について

配列を扱う場合には、配列型の変数に配列を代入します。配列型は、「int型の要素を持つ配列型」「String型の要素を持つ配列型」という風に指定する必要があります。記述方法は下図の通りになります。

配列の変数定義
int[]    .......    数値を要素に持つ配列

String[]    .......    文字列を要素に持つ配列

[]の間にはスペースを空けないように注意しましょう!

配列の作成方法

配列は{ }の中に、コンマ(,)で区切りながら値を書くことでつくることができます。[]と{}を混同しないように注意してください。

Main.java
int[] numbers = {3,16,47};   .......    整数を要素に持つ配列 numbers

String[] names = {Tom,James,Mia};   .......    文字列を要素に持つ配列 names

インデックス番号

配列の要素には、前から順に「0, 1, 2・・・」と数字が割り振られています。これをインデックス番号といいます。インデックス番号は0から始まります。
配列の各要素は、配列名[インデックス番号]とすることで取得することができます。

Main.java
String[] names = {Tom,James,Mia};
System.out.println("私の名前は" + names[2] + "です");

出力結果↓

コンソール
私の名前はMiaです

配列の要素の上書き

特定の要素に値を代入することで、要素を上書きすることができます。下図を確認します。

Main.java
String[] names = {Tom,James,Mia};
System.out.println(names[2]);
names[2] = "Emma";  //2番目の要素を上書き
System.out.println(names[2]);

出力結果↓

コンソール
Mia
Emma

配列では存在しない要素に値を代入することはできません。エラーが発生しますので注意してください!

Main.java
String[] names = {Tom,James,Mia};
names[3] = "Emma";  //存在しない要素のためエラー発生!!

配列と繰り返しについて

配列とfor文

配列namesの要素を全て出力するために、それぞれの要素にSystem.out.println()を用いることは非常に大変です。しかし、これを繰り返し処理で学んだfor文で書いてみると配列の要素の値を簡単に一覧表示できるようになります。

Main.java
//for文を用いない場合
String[] names = {Tom,James,Mia};
System.out.println(names[0]);
System.out.println(names[1]);
System.out.println(names[2]);

//for文を用いた場合
String[] names = {Tom,James,Mia};
for(int i = 0; i < 3; i++) {
  System.out.println(names[i]);   //変数iが0,1,2の間、繰り返される
}

lengthについて

配列には、要素の数を数えるlengthという機能が備わっています。
lengthを用いれば、for文の条件式「i < 3」を下図のように書き換えることができ、配列の要素数を気にする必要がなくなります。

Main.java
//for文の中にlengthを用いる場合
String[] names = {Tom,James,Mia};
for(int i = 0; names.length; i++) {
              //配列.lengthとすることで、要素数を気にする必要がなくなる
  System.out.println(names[i]); 
}

拡張for文について

for文は配列用に特別な構文である、拡張for文を用意しています。
これを使えば、先ほどのfor文をよりシンプルに書くことが可能になります。

拡張for文の記述方法
for(データ型 変数名 : 配列名) {
  繰り返す処理; 
}

拡張for文では、配列の各要素の値を順に代入する変数を用意します。

Main.java
//拡張for文を用いた場合
String[] names = {Tom,James,Mia};
for(String name : names) {         //for(データ型 変数名 : 配列名)
  System.out.println(name); 
}

上図では、繰り返しの度に、変数nameに配列namesの要素が順に代入されていきます。また拡張for文では、自動的に要素の数だけ繰り返しが行われます。
また、普通のfor文ではインデックス番号を用いて配列の要素を取得しなければなりませんが、拡張for文では変数に配列の要素自体が代入されます。拡張for文の方がシンプルに書けることが多いのため便利です。

以上が配列についての説明になります。次章からはメソッドについて記事を書きたいと思います。
よろしければご覧になってください!
最後までご覧いただきまして、ありがとうございました!