MENU

【Java】レッスン2-07:配列の使い方|宣言・初期化・操作をマスターしよう

tggaa478@yahoo.co.jp

一つ前のページでは繰り返しを制御について学習しました。

今回は 配列 について見ていきましょう。

Lesson1:基礎文法編
Lesson2:制御構造編

 ・Lesson2-1:比較演算子と論理演算子を理解しよう
 ・Lesson2-2:if文による分岐処理を理解しよう
 ・Lesson2-3:switch文による分岐処理を理解しよう
 ・Lesson2-4:for文による繰り返し処理を理解しよう
 ・Lesson2-5:while文による繰り返し処理を理解しよう
 ・Lesson2-6:繰り返しを制御しよう
 ・Lesson2-7:配列を理解しよう ◁今回はココ
 ・Lesson2-8:エラーメッセージを読めるようになろう
 ・Lesson2-9:例外処理を理解しよう
 ・確認問題2-☆1:ハイアンドロー ゲームを作ろう
 ・確認問題2-☆2:数字当てゲームを作ろう
 ・確認問題2-☆3:じゃんけんゲームを作ろう
Lesson3:メソッド編
Lesson4:コレクション編
Lesson5:クラス

<<前のページ

学習記事一覧

次のページ>>

Java配列の基本構文とは?初心者向けにわかりやすく解説

プログラミングにおいて、「配列」は複数のデータを一つにまとめて管理するために非常に便利な構造です。

特に同じ型のデータをまとめて扱いたい場合に使用され、データの整理や操作が容易になります。

このページでは配列の基本的な使い方とその利点を学んでいきましょう。

配列の概要とJavaで使う理由

配列とは同じデータ型の要素を連続して格納するためのデータ構造です。

例えば5科目のテストの点数を格納するときに、これまでなら5つの変数を準備していましたが、配列を使えば一つの変数に5つの点数を格納できるようになります。

//テストの点数を変数で保管
int Language = 80;
int Mathematics = 70;
int Science = 100;
int Social = 75;
int English = 60;

//テストの点数を配列で保管
int[] Score = {80, 70, 100, 75, 60};

配列は一つの変数名で複数の要素を管理でき、各要素には「インデックス」と呼ばれる番号を使ってアクセスします。

Javaの配列はサイズが固定されており、一度作成するとそのサイズを変更できません。そのため配列は同じ型のデータを決まった数だけ扱う際に適しています。

配列の宣言方法と初期化パターンを覚えよう

Javaで配列を使用するためにはまず配列の宣言と初期化を行います。

配列の宣言にはデータ型に続けて [] を使い、変数名を指定します。

次にnew キーワードを使って配列のサイズを指定することで初期化を行います。具体的には以下のように記述します。

// 配列の宣言と初期化(サイズ指定)
int[] scores = new int[ 3];

// 配列の宣言と初期化(値を指定して初期化)
int[] numbers = {10, 20, 30};

上記の例ではscores という名前の配列に3つの整数を格納するためのスペースを確保しています。(空の配列を宣言している)。

またnumbers という配列には初めから値を格納しています。このように直接値を指定して初期化することも可能で、この方法は「初期化リスト」と呼ばれます。

配列を使った具体的な計算例

それでは配列を使って実際にデータを操作する例を見てみましょう。

以下は配列内のデータにアクセスし、合計を計算するプログラムの例です。

public class ArrayExample {
    public static void main(String[] args) {
        // 配列の宣言と初期化
        int[] scores = {85, 90, 78};

        // 合計を計算
        int sum = 0;
        for (int i = 0; i < scores.length; i++) {
            sum += scores[i];
        }

        // 平均を計算して出力
        double average = (double) sum / scores.length;
        System.out.println("合計: " + sum);
        System.out.println("平均: " + average);
    }
}

このプログラムではscores 配列に3つのスコアが格納されており、for ループを使用して合計を計算しています。

その後、合計を要素数で割り平均を求めています。

Javaで配列の要素を取り出す・書き換える方法

配列の要素にアクセスするには、インデックスを指定します。

Javaの配列は0から始まるインデックスを持ちますので、最初の要素にはインデックス0を使用します。

また、特定の要素を変更するにはそのインデックスに新しい値を代入します。

// String型の配列の操作例
String[] names = {"太郎", "次郎", "三郎"};

// 要素の取得
System.out.println(names[ 0]); // 出力: 太郎

// 要素の更新
names[ 2] = "史郎";
System.out.println(names[ 2]); // 出力: 史郎

このように配列のインデックスを利用することで、特定の要素を取得したり更新したりすることができます。

配列を使うメリットと落とし穴に注意しよう

配列を使うと複数のデータを簡潔に管理でき、コードがシンプルになります。また配列は同じ型のデータを扱うため、型の安全性も確保されます。

しかしJavaの配列はサイズを固定する必要があるため、動的にサイズを変えたい場合には第3章で学習するArrayListなどの別のデータ構造の方が適しています。

また配列の範囲外にアクセスしようとするとArrayIndexOutOfBoundsExceptionが発生するため、インデックスの取り扱いには注意が必要です。

学んだ内容のふり返りと次へのステップ

配列は同じ型のデータをまとめて管理できる便利なデータ構造であり、プログラム内でのデータ操作を効率化します。

基本的な使い方を理解し、適切な場面で活用することが重要です。

次の章では、エラーメッセージの確認方法について学び、配列使用時に発生しがちなエラーの理解も深めていきます。

練習問題|Javaで配列の平均値を計算するプログラムを作ろう

5つの整数(10 , 20 , 30 , 40 , 50)を含む配列を作成し、それらの平均値を計算して出力するプログラムを作成してください。

この問題の要件

以下の要件に従ってコードを完成させてください。

  • 配列 numbers に 10, 20, 30, 40, 50 を格納すること。
  • 配列 numbers の全要素の合計を計算し、その合計を使って平均値を求めること。
  • 平均値は小数点以下も表示すること。

ただし、以下のような実行結果となること。

平均値: 30.0

この問題を解くヒント

1からコードを組み立てることが難しい場合は、以下のヒントを開いて参考にしましょう。

Q
ヒント1【コードの構成を見る】

正解のコードは上から順に以下のような構成となっています。

1:AverageCalculatorクラスの定義
  □ mainメソッドの定義
  □ □ int型配列numbersの初期化と5つの整数の設定
  □ □ int型変数sumの初期化
  □ □ forループで配列numbersの全要素を順に合計
  □ □ □ sumにnumbersの要素を加算
  □ □ double型変数averageの初期化と平均値の計算
  □ □ System.out.printlnで平均値を出力

Q
ヒント2【穴埋め問題にする】

以下のコードをコピーし、コメントに従ってコードを完成させて下さい。

public class AverageCalculator {
    public static void main(String[] args) {
        /*【穴埋め問題1】
        ここにint型配列numbersを初期化し、5つの整数を設定するコードを書いてください。
        */

        /*【穴埋め問題2】
        ここに合計を格納するためのint型変数sumを初期化するコードを書いてください。
        */

        // 配列の全要素を順に足し合わせる
        /*【穴埋め問題3】
        ここにforループを使用して配列numbersの全要素を合計するコードを書いてください。
        */

        /*【穴埋め問題4】
        ここにdouble型変数averageを初期化し、平均値を計算するコードを書いてください。
        */

        /*【穴埋め問題5】
        ここでSystem.out.println()を使用して、平均値を出力するコードを書いてください。
        */
    }
}

このヒントを見てもまだ回答を導き出すのが難しいと感じる場合は、先に正解のコードと解説を見て内容を理解するようにしましょう。

練習問題の解答と解説

この問題の正解コードとその解説は以下の通りです。

クリックして開いて確認してください。

Q
正解コード
public class AverageCalculator {
    public static void main(String[] args) {
        int[] numbers = {10, 20, 30, 40, 50}; // 5つの整数を含む配列を作成
        int sum = 0; // 合計を格納する変数を初期化

        // 配列の全要素を順に足し合わせる
        for (int i = 0; i < numbers.length; i++) {
            sum += numbers[i];
        }

        // 平均値を計算(合計を要素数で割る)
        double average = (double) sum / numbers.length;
        System.out.println("平均値: " + average); // 平均値を出力
    }
}
Q
正解コードの解説

コードをブロックごとに分割して解説します。

クラスとメインメソッドの定義

public class AverageCalculator {
    public static void main(String[] args) {
  • クラス定義 (public class AverageCalculator):プログラム全体を「AverageCalculator」というクラスとして定義します。Javaのコードは、基本的にクラスの中に書かれます。
  • メインメソッド (public static void main(String[] args)):プログラムの実行が始まる場所です。mainメソッドはJavaプログラムのエントリーポイントとなり、必ずこの形式で書かれます。

配列の宣言と初期化

        int[] numbers = {10, 20, 30, 40, 50}; // 5つの整数を含む配列を作成
  • 配列の宣言と初期化int[] numbers = {10, 20, 30, 40, 50}; の部分で、numbersという名前の配列を宣言し、整数値を5つ格納しています。配列は複数のデータを一つの変数で管理するために使われます。intは「整数」を表すデータ型であり、int[]は「整数の配列」を意味します。
  • 配列の初期化{10, 20, 30, 40, 50} で、配列numbersに5つの整数が最初から入っています。

合計を格納する変数の初期化

        int sum = 0; // 合計を格納する変数を初期化

変数の宣言と初期化int sum = 0; によって、合計を保存するための整数型変数sumを宣言し、初期値を0に設定します。

これで配列の各要素を足していく際にsumに合計が蓄積されていきます。

配列の各要素の合計を計算

        for (int i = 0; i < numbers.length; i++) {
            sum += numbers[i];
        }

forループ (for (int i = 0; i < numbers.length; i++)):このループは、iという変数を使って配列の要素に一つずつアクセスし、全ての要素の合計を計算します。

  • numbers.length は配列numbersの要素数を取得し、ループが配列の最後まで繰り返すようにしています。
  • sum += numbers[i];で、配列numbersの各要素をsumに加算します。+=は加算代入演算子で、sum = sum + numbers[i];と同じ意味です。

平均値の計算

        double average = (double) sum / numbers.length;

平均値の計算:この行では、変数averageに合計sumを配列の要素数numbers.lengthで割った結果を格納しています。

結果の出力

        System.out.println("平均値: " + average); // 平均値を出力
    }
}

出力System.out.printlnを使って平均値を出力します。"平均値: " + averageで、「平均値:」という文字列と計算結果のaverageを一緒に表示しています。

まとめ

このプログラムでは配列を使って複数の数値を一度に管理し、合計と平均を計算しました。

配列の使い方やループでの配列要素のアクセス方法など、初心者が身につけておくべき基本的なスキルが盛り込まれています。

配列やループに慣れることでデータ処理の幅が広がりますので、ぜひ理解を深めていきましょう!

もっと分かりやすい学習サイトにするために

この記事を読んで「ここが分かりにくかった」「ここが難しかった」等の意見を募集しています。

世界一わかりやすいJava学習サイトにするため、ぜひ 問い合わせフォーム からご意見下さい。

<<前のページ

学習記事一覧

次のページ>>

記事URLをコピーしました