導入
複数のデータをまとめて持つしくみに配列があります(詳しくは次章)。配列の中身を1つずつ順番に処理したいとき、通常の for よりも簡潔に書ける 拡張for(for-each) を紹介します。
説明
配列とは、複数の値をひとまとめにして番号(インデックス)で管理できる箱です。int[] scores = {80, 95, 70, 60}; のように波かっこでまとめて作れます。
public class Main {
public static void main(String[] args) {
int[] scores = {80, 95, 70, 60};
int total = 0;
for (int score : scores) {
total += score;
}
System.out.println(total);
for (int score : scores) {
System.out.println(score);
}
}
}
for (int score : scores) { ... }… 「scoresの中身を1つずつscoreに取り出しながら繰り返す」という意味です。:(コロン)を挟んで「取り出す変数 : 対象」の順に書きます。- 通常の
for (int i = 0; i < scores.length; i++)と違い、インデックス(何番目か)を自分で管理する必要がないぶん、シンプルに書けます。ただし「何番目の要素か」の情報は使えないので、それが必要なときは通常のforを使います。
やってみよう
下のエディタで scores の中身を増やしたり変えたりして、total の値が変わることを確かめましょう。
演習
int[] nums = {10, 20, 30, 40, 50}; を拡張forで走査し、合計を表示してください(結果は 150)。
ヒント1を見る
int sum = 0; for (int n : nums) { sum += n; } の形にします。
ヒント2を見る
最後に System.out.println(sum);。