🎉
Java7日目
配列
配列について
配列(array)とは、同一種類の複数データを並び順で格納するデータ構造です。
配列の添え字は0から始まることに注意!
配列の作成
// 配列変数の宣言
// 要素の型[] 配列変数名; という書き方をする。
int[] scores;
// 要素の作成と代入
scores = new int[5]; //int型の要素を5個作り、配列変数scoresに代入する
// scores[0] = 1; scores[1] = 2; といったように代入できる。
変数の値は初期化しないとコンパイルエラーが起きるが、配列の要素は自動的に初期化される。
要素の型によって自動的に初期化される初期値が決められている
- intやdouble等の数値の型: 0
- boolean型: false
- String型: null
配列の作成と初期値の代入までをまとめて行える省略記法
int[] scores = new int[] {1, 2, 3, 4, 5};
int[] scores = {1, 2, 3, 4, 5};
上記はどちらも同じ挙動をする。
配列の例外について
配列に存在しない要素をコード内で使うと、コンパイルは成功するが実行時にエラーが出ます。
例えば、scoresという配列変数に要素が5個用意されているとすると、scoresの添え字は[0]
~[4]です。しかしここでscores[5]をコード内で使おうとするとエラーが起きます。このとき、ArrayIndexOutOfBoundsExceptionという例外(エラー)が起きます。
例外に関しては触れるだけにしておきます。
配列とfor文
for文を使うと配列のデータをまとめて扱うことができます。
public class Main {
public static void main(String[] args) {
int[] scores = {20, 30, 40, 50, 80};
for (int i = 0; i < scores.length; i++) {
System.out.println(scores[i]);
}
}
}
拡張for文
配列のデータをまとめて扱う際にfor文の便利な書き方がある。
for (要素の型 任意の変数名 : 配列変数名) {...
とスッキリとした書き方ができる。
public class Main {
public static void main(String[] args) {
int[] scores = {20, 30, 40, 50, 80};
for (int score : scores) {
System.out.println(score);
}
}
}
今回はここまでにします。拡張for文はrubyだとfor score in scores {}という書き方ができるのに似てるかなと思いました。ほかの言語の書き方と混同しないようにしたいところです。
Discussion