コース一覧
    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 で走査

    要素が 40 個になった時点で、手書きは終わる

    配列の中身を全部表示したいとします。番号を指定すれば取り出せるので、こう書けます。

    Java

    int[] scores = {80, 65, 92};
    System.out.println(scores[0]);
    System.out.println(scores[1]);
    System.out.println(scores[2]);

    3 つならこれで済みます。ただ 40 人分になれば 40 行になり、人数が変わるたびに行を足したり消したりすることになります。そもそも、メソッドの引数として配列を受け取ったときは、中に何個入っているかを書いている本人が知りません。

    番号が 0 から 1 ずつ増えていくだけなら、その数え上げは for の仕事です。

    arr.length を上限にすれば、長さが変わっても直さなくていい

    配列を端から端まで回す書き方は、ほぼこの形で固定されています。

    Java

    int[] scores = {80, 65, 92};
    for (int i = 0; i < scores.length; i++) {
        System.out.println((i + 1) + "人目 " + scores[i]);
    }

    i を 0 から始め、scores.length より小さい間だけ繰り返し、1 周ごとに 1 増やす。ループの中では scores[i] が「いまの番号の要素」になります。

    肝心なのは、上限に 3 と直接書かずに scores.length と書いている点です。要素が 3 つでも 40 でも、このコードは一文字も直さずに動きます。

    i が手元にあること自体にも意味があります。上の例では i + 1 を「何人目」の表示に使いました。番号が分かるということは、位置によって扱いを変えられるということです。

    <= にすると、最後の 1 周で落ちる

    繰り返しの条件は i < scores.length です。ここを i <= scores.length と書くと、余分にもう 1 周だけ回ります。

    長さ 3 の配列で使える番号は 2 まででした。<= だと i が 3 のときにも中に入り、scores[3] を読みに行って ArrayIndexOutOfBoundsException で止まります。1 文字の違いでプログラムが落ちるので、上限は <、イコールは付けない と決めてしまうのが安全です。

    では、長さが 0 の配列を渡すとどうなるでしょうか。i は 0 から始まりますが、0 < 0 は最初から成り立ちません。ループは 1 周も回らず、中の処理は一度も実行されないまま次に進みます。空の配列のために特別な分岐を足さなくても、この形なら自然に素通りしてくれます。

    解説

    ループが 1 周も回らないのは異常ではなく、条件どおりの動きです。回るはずなのに回らないときは、まず arr.length が本当に想定の数になっているかを表示して確かめましょう。

    やってみよう

    今回は、配列の中身を , (カンマと半角スペース) でつないだ 1 本の文字列を返すメソッドを書きます。繰り返しは for (int i = 0; i < arr.length; i++) の形で書いてください。

    難しいのは区切り文字の置き方です。区切りが要るのは要素と要素の 間 だけで、末尾には要りません。i の値を見れば、いまが先頭かどうかは分かります。そこをどう使うかが、今回の山場です。空の配列のときは "" が返れば正解です。

    要件

    1. クラス名は Solution、メソッド名は joinElements、引数は int[] arr 1 つ、戻り値の型は String
    2. for (int i = 0; i < arr.length; i++) パターンで配列を走査すること (継続条件は <、<= にしないこと)
    3. 区切り文字は , (カンマ + 半角スペース 1 つ)。末尾に余計な , を残さないこと。空配列のときは "" を返すこと

    ヒント

    `for (int i = 0; i < arr.length; i++)` のように、継続条件は **必ず `<`** にします。`i <= arr.length` と書くと `arr[arr.length]` でクラッシュします

    末尾の余計な区切り文字を出さないコツは「先頭だけ区切りなし、2 つ目以降は前に `", "` を入れる」です。`if (i > 0) { sb.append(", "); }` のように分岐しましょう

    `StringBuilder` を使うと文字列連結が速くなります。`new StringBuilder()` → `sb.append(...)` → 最後に `sb.toString()` で文字列に変換して `return` しましょう

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

    関連レッスン

    • Javaで配列の合計・平均を求める方法(forループ)

      Javaで配列の合計値や平均値を求める方法を、for-each ループと累積パターンのコード付きで解説。sum を計算して要素数で割る平均の出し方まで初心者向けに紹介します。

    • 配列の平均

      配列の要素を全部足して、要素数で割って平均を求める。空配列のときの 0 除算を避けることと、整数除算ではなく小数として計算するキャストの考え方を身につけよう。

    • 配列の最大値

      配列の中から一番大きい値を探そう。仮の最大値を更新していくアルゴリズムを身につける。

    • 配列の線形探索

      配列を先頭から順番に見ていき、目的の値があれば位置 (index) を、なければ -1 を返す線形探索アルゴリズムを書こう。

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

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

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

    メモ

    配列を for で走査

    ⌘S で保存