導入
配列の要素は、あとから自由に書き換えることができます。全要素に同じ処理をしたり、合計・平均を求めたりする処理は、実務でもよく登場します。
説明
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);。