本文へスキップ
BecomeCoder

Java文法コース · 第5章 配列 ― 複数のデータをまとめて扱う · レッスン22

配列の書き換えと集計

ブラウザで完結

導入

配列の要素は、あとから自由に書き換えることができます。全要素に同じ処理をしたり、合計・平均を求めたりする処理は、実務でもよく登場します。

説明

public class Main {
    public static void main(String[] args) {
        int[] prices = {100, 200, 300};

        for (int i = 0; i < prices.length; i++) {
            prices[i] = prices[i] * 2;   // 全部2倍にする
        }
        for (int p : prices) {
            System.out.println(p);
        }

        int sum = 0;
        for (int p : prices) {
            sum += p;
        }
        double average = (double) sum / prices.length;
        System.out.println(average);
    }
}
  • prices[i] = prices[i] * 2;インデックスを指定して代入すると、その要素だけ書き換わります。「全要素を2倍にする」には、for でインデックスを回しながら1つずつ書き換えます(拡張forの p はコピーなので、p = p * 2; としても元の配列は変わりません)。
  • 合計・平均の求め方は、変数への数値の集計と同じ考え方です。(double) sum / prices.length のように、割り算の前にキャストして小数にするのがポイントでした(第2章の復習です)。

やってみよう

下のエディタで prices の中身を変えて、平均がどう変わるか確かめましょう。「2倍」を「100円引き」に変えるとどうなるかも試してみてください。

演習

int[] scores = {60, 70, 80, 90}; の平均を double で求めて表示してください(結果は 75.0)。

ヒント1を見る

int sum = 0; for (int s : scores) { sum += s; } で合計を求めます。

ヒント2を見る

double average = (double) sum / scores.length; として System.out.println(average);

実際に動かしてみよう

下のエディタにJavaを書いて「実行」を押すと、学習用シミュレータが System.out.println の出力を表示します(本物のJVMではなく、教材の範囲を再現した軽量エンジンです)。クラス・継承・コレクションなども動きます。Scanner で入力を読む例は「標準入力」欄に値を入れてください。本文の例を書き換えて動かしてみましょう(Stream・ラムダ・スレッド・ファイル入出力など一部の機能は対象外です)。

Java — ブラウザ内で実行(学習用シミュレータ)

Javaの教材サブセットを動かす学習用シミュレータを読み込みます(本物のJVMではなく、動きを再現した軽量な自作エンジンです)。
スクロールして表示された時点でも自動で読み込まれます。