コース一覧
    Java入門:配列とコレクション
    拡張 for ループ

    Java入門:配列とコレクション

    配列とコレクションの扱いを学び、複数のデータを安全に整理・検索・集計できるようにします。

    1
    配列
    01. 配列の基本5分
    02. 配列の要素にアクセス5分
    03. 配列を for で走査5分
    04. Javaで配列の合計・平均を求める方法(forループ)5分
    05. 配列の平均5分
    06. 配列の最大値5分
    07. 配列の線形探索12分
    08. 拡張 for ループ5分
    09. 配列クイズ5分
    10. 第 6 章 まとめクイズ5分
    2
    コレクション基礎
    01. ArrayList を使う5分
    02. List を走査する5分
    03. 要素の削除と検索5分
    04. HashMap の基本5分
    05. Map を走査する5分
    06. Set で重複を排除5分
    07. Collections クラスの便利メソッド5分
    08. コレクション基礎 まとめクイズ5分

    拡張 for ループ

    配列を頭から全部見るだけなのに、for の丸カッコには int i = 0 と i < arr.length と i++ の 3 つを書かなければいけません。中では arr[i] と書きます。i を使いたいわけではないのに、i の面倒を全部見ている状態です。

    i を書かずに要素だけ受け取る

    Java には、この全部見るだけのための短い書き方があります。拡張 for です。

    Java

    String[] members = {"佐藤", "鈴木", "高橋"};
    for (String name : members) {
        System.out.println(name);
    }

    丸カッコの中に書くのは、取り出す要素の型と名前、コロン、取り出したい配列の 3 つだけです。1 周ごとに members の要素が順番に name へ入ってきます。

    同じ処理をこれまでの書き方で並べると、何が消えたのかがはっきりします。

    Java

    for (int i = 0; i < members.length; i++) {
        System.out.println(members[i]);
    }

    消えたのは、i の初期化、members.length との比較、i++、そして members[i] という取り出しです。書く量が減っただけではなく、< と <= を書き間違えて最後の 1 つを飛ばす定番の事故が、そもそも起こせなくなります。

    変数名は name でも x でも構いませんが、item score name のように中身が分かる名前にすると、ループの本体が読みやすくなります。

    添字が要る場面では使えない

    拡張 for は今が何番目かを教えてくれません。前後の要素を比べたい、偶数番目だけ処理したい、見つけた位置を返したい、といった添字が要る処理は、これまでどおりの for で書きます。

    受け取った変数を書き換えても、配列は変わらない

    拡張 for でいちばん多い誤解がこれです。

    Java

    int[] prices = {100, 200, 300};
    for (int p : prices) {
        p = p * 2;
    }
    System.out.println(prices[0]); // 100 のまま

    p に入っているのは要素のコピーです。p を書き換えても、配列の中身には何も起きません。中身を書き換えたいときは prices[i] = ... のように添字を通して代入する必要があるので、そこは通常の for の出番です。拡張 for は読むための道具だと割り切ると、迷わずに使い分けられます。

    やってみよう

    countEvens(int[] arr) は、配列に入っている偶数の個数を返します。繰り返しには必ず拡張 for を使ってください。

    • 数えた個数を入れる変数は、ループの外で 0 から始めます。中で宣言すると 1 周ごとに作り直されてしまいます
    • 偶数の判定は x % 2 == 0 です。-4 のような負の偶数も、この式でちゃんと偶数と判定されます
    • 空の配列を渡すと、ループの本体が 1 度も実行されないまま 0 が返ります

    書けたら、同じ処理を通常の for でも書いてみてください。i を使わない処理で i を書くことがどれだけ余計か、並べると実感できます。

    要件

    1. クラス名は Solution、メソッド名は countEvens、引数は int[] arr 1 つ、戻り値の型は int
    2. 繰り返しには必ず拡張 for (for (int x : arr) { ... } の形) を使うこと
    3. 偶数の判定は x % 2 == 0 で行うこと (負の偶数も正しくカウントされる)

    ヒント

    `int count = 0;` のようにカウンタを 0 で初期化し、ループの外側に置きます

    `for (int x : arr) { ... }` で配列の各要素が順番に `x` に入ります

    ループの中で `if (x % 2 == 0) { count++; }` と書けば、偶数のときだけカウンタが増えていきます

    生田 陸人
    監修生田 陸人
    ゆめさくエンジニア / 現役ソフトウェアエンジニア監修者プロフィールを見る →
    編集 ゆめさく編集部·公開 2026/05/19·更新 2026/08/26

    関連レッスン

    • 配列クイズ

      配列の宣言と初期化、`length` プロパティ、添字の上限、拡張 for と通常 for の使い分けを 4 択クイズ 1 問で総ざらいする配列章末まとめ。

    • 第 6 章 まとめクイズ

      第 6 章「配列」で学んだ宣言・初期化・添字アクセス・length・拡張 for・多次元配列・合計平均・最大最小・検索・並べ替え、そして参照型の落とし穴までを総ざらいする章末まとめ。

    • ArrayList を使う

      Java の代表的な可変長リスト ArrayList の使い方を学び、add で要素を追加して toString で中身を取り出すコードを書いてみよう。

    このレッスンに出てくる用語

    意味があいまいなまま進んだ語は、ここから読み直せます。

    • 配列サイズ固定の同型データの集まり
    • 処理計算や代入を表す長方形
    • 変数データに名前をつけて参照する仕組み
    • ループ繰り返し処理。矢印で戻すか専用記号で示す
    • クラスデータと振る舞いを束ねる単位
    • メソッドクラスに属する関数
    • 引数位置引数=順番で渡す。
    • 戻り値呼び出し元への返答を表す点線矢印
    main.java
    エディタを読み込んでいます

    メモ

    拡張 for ループ

    ⌘S で保存