Java基礎文法Part２

今回はJavaの配列について記事にしたいと思います。
配列は、同じ種類のデータをまとめて一つに管理できる「箱」のようなものです。
たとえば、クラスのみんなのテスト点数をプログラムで扱いたいとします。一人一人の点数を別々の変数に入れると、とても大変です。

```java
int score1 = 80;
int score2 = 90;
int score3 = 75;
```

// 生徒が30人いたら、30個の変数が必要になります！
これでは効率が悪いので、配列を使って点数をまとめて管理します。

配列のイメージ
配列は、一列に並んだロッカーや引き出しのようなものです。
各引き出し（要素）には、データが一つずつ入っています。
配列全体に名前をつけて、引き出しごとに番号（インデックス）でアクセスします。
図で表すと：

```css
配列 scores
+-----+-----+-----+-----+-----+
| 80  | 90  | 75  | 85  | 95  |
+-----+-----+-----+-----+-----+
  [0]   [1]   [2]   [3]   [4]
```
scores[0] は最初の要素（80）を指します。


配列の使い方
1. 配列の宣言と作成
まず、配列を宣言して作成します。

```java
// 型[] 配列名 = new 型[要素数];
int[] scores = new int[5];
```
int[] は「整数型の配列」を意味します。
scores は配列の名前です。
```java
new int[5] で、5つの整数を入れることができる配列を作成します。
```

2. 配列に値を入れる
各要素に値を代入します。

```java
// 配列名[インデックス] = 値;
scores[0] = 80; // 1番目の要素に80を入れる
scores[1] = 90; // 2番目の要素に90を入れる
scores[2] = 75;
scores[3] = 85;
scores[4] = 95;
```
インデックスは0から始まるので、注意してください。



3. 配列から値を取り出す
配列の要素を使って計算や表示ができます。

```java
System.out.println(scores[2]); // 出力：75
```


4. 配列の長さを取得する
配列の要素数（長さ）を知りたいときは、配列名.length を使います。
```java
int length = scores.length; // lengthは5になります
```

配列を使った例題
例題：5人の生徒のテスト点数の平均を計算するプログラム

```java
public class Main {
    public static void main(String[] args) {
        // 1. 配列の宣言と作成
        int[] scores = new int[5];
        
        // 2. 配列に値を入れる
        scores[0] = 80;
        scores[1] = 90;
        scores[2] = 75;
        scores[3] = 85;
        scores[4] = 95;
        
        // 合計点を計算する変数を用意
        int sum = 0;
        
        // 3. 配列から値を取り出して合計を計算
        for(int i = 0; i < scores.length; i++) {
            sum += scores[i]; // sum = sum + scores[i];
        }
        
        // 平均点を計算
        double average = (double)sum / scores.length;
        
        // 結果を表示
        System.out.println("合計点：" + sum);
        System.out.println("平均点：" + average);
    }
}
```
実行結果：
```java
合計点：425
平均点：85.0
```
forループを使って、配列の全ての要素を順番に取り出しています。
sum += scores[i]; は、合計を計算するためのコードです。
ポイントまとめ
配列は同じ型のデータをまとめて管理できる。
インデックスは0から始まるので、最初の要素は配列名[0]です。
配列の長さは配列名.lengthで取得できます。
forループと組み合わせて使うと、全ての要素を簡単に操作できます。
配列の便利な初期化方法
配列を作成すると同時に値を入れることもできます。

```java
int[] scores = {80, 90, 75, 85, 95};
```
これで、5つの要素を持つ配列scoresが作成され、それぞれに値が代入されます。
配列の応用：二次元配列
配列の中に配列を持つ、二次元配列もあります。

例：クラスの成績表（生徒5人、科目3つ）
```java
int[][] grades = {
    {80, 85, 90}, // 1人目の点数（国語、数学、英語）
    {75, 80, 85}, // 2人目
    {90, 95, 100}, // 3人目
    {65, 70, 75}, // 4人目
    {85, 80, 90}  // 5人目
};
```

grades[0][1] は、1人目の2番目の科目の点数（85）を指します。
grades.length は生徒の人数（5）を示します。
grades[0].length は科目の数（3）を示します。
二次元配列を使った例題
例題：各生徒の合計点と平均点を計算する
```java
public class Main {
    public static void main(String[] args) {
        int[][] grades = {
            {80, 85, 90}, // 1人目
            {75, 80, 85}, // 2人目
            {90, 95, 100}, // 3人目
            {65, 70, 75}, // 4人目
            {85, 80, 90}  // 5人目
        };
        
        for(int i = 0; i < grades.length; i++) {
            int sum = 0;
            for(int j = 0; j < grades[i].length; j++) {
                sum += grades[i][j];
            }
            double average = (double)sum / grades[i].length;
            System.out.println((i+1) + "人目の合計点：" + sum + "、平均点：" + average);
        }
    }
}
```
実行結果：
```java
1人目の合計点：255、平均点：85.0
2人目の合計点：240、平均点：80.0
3人目の合計点：285、平均点：95.0
4人目の合計点：210、平均点：70.0
5人目の合計点：255、平均点：85.0
```


配列を使うときの注意点
配列のインデックスは0から始まることを忘れないでください。

配列の範囲外（存在しない要素）にアクセスするとエラーになります。

```java
int[] scores = new int[5];
scores[5] = 100; // エラー！インデックスは0～4まで
```
配列のサイズは一度決めたら変更できません。

まとめ
配列は、同じ種類のデータをまとめて扱うための便利な仕組みです。
大量のデータを効率的に管理・操作することができます。
ループと組み合わせることで、全ての要素に対して処理を行うことが簡単になります。