【1日60分×7日でわかる】Java基礎文法 Day6: 配列の基本操作

点数を5人分、10人分と扱いたいとき、変数を人数分だけ用意するのは非効率です。そこで役立つのが「配列」です。今日は60分で、配列の作り方とアクセス方法を学び、合計・最大値・平均を求めるプログラムを作ります。時間配分の目安は、説明15分、実践30分、振り返り15分です。昨日のループを配列と組み合わせて使います。

配列とは(目安12分・インプット)

配列とは、同じ型の値をまとめて並べて入れておく箱の列です。作り方は2通りあります。

int[] scores = {80, 95, 70};   // 値を直接指定して作る
int[] nums = new int[5];        // 長さ5の空箱(初期値は0)

中の値には「番号(インデックス)」でアクセスします。番号は0から始まるので、1つ目は `scores[0]`、2つ目は `scores[1]` です。配列の長さは `scores.length` で取得できます(かっこは付けません)。

【実践】合計・最大値・平均を求める(目安30分・手を動かす)

`ArrayEx.java` を作り、ループで配列の中身を順番に処理してみましょう。

public class ArrayEx {
    public static void main(String[] args) {
        int[] scores = {80, 95, 70, 60, 88};
        int sum = 0;
        int max = scores[0];
        for (int i = 0; i < scores.length; i++) {
            sum += scores[i];
            if (scores[i] > max) {
                max = scores[i];
            }
        }
        System.out.println("合計: " + sum);
        System.out.println("最大: " + max);
        System.out.println("平均: " + (sum / scores.length));
    }
}

実行して結果を確認しましょう。慣れてきたら、配列の全要素を順に取り出す「拡張for文」も試してください。`for (int s : scores) { System.out.println(s); }` と書くと、各要素がsに順番に入ります。演習として、最大値と同じ要領で「最小値」を求めるコードも追加してみましょう。

よくある疑問・つまずきポイント

**実行時に ArrayIndexOutOfBounds というエラーが出ます。**

存在しない番号にアクセスしています。使える番号は0からlength-1までです。長さ5なら0〜4です。

**length にかっこを付けるとエラーになります。**

配列のlengthはメソッドではないため、`scores.length` と書きます(`()` は不要)。文字列の長さ `length()` とは書き方が違う点に注意です。

まとめ(目安13分)

今日は配列を作り、ループと組み合わせて合計・最大・平均を求めました。多数のデータをまとめて処理できると、プログラムでできることが一気に広がります。明日はいよいよ、処理を部品にまとめる「メソッド」を学び、基礎文法の総仕上げに入ります。

コメント

タイトルとURLをコピーしました