🎉

Java7日目

2023/08/06に公開

配列

配列について

配列(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