配列修羅道:Step02

配列修羅道:Step02 learn

在庫切れがあるか?

問題を見る(javadrillへ)


問題のポイント

配列の中に「0」が含まれているかをチェックする。
ここでは単純な繰り返し処理だけでなく、途中で見つけたら即終了という“判断と脱出”の考え方が入ってくる。
ループは「全部見る」とは限らない。条件が満たされた時点で止まれる。
そこをしっかり理解するのがポイント。


まず、日本語で考えろ

  • 配列に在庫数が入っている(int[] stocks)
  • どれか一つでも 0 があれば「在庫切れあり」と出力
  • 全部が 0 でなければ「在庫切れなし」
  • 見つかった時点でループを抜けたい

コメントを書け

// 配列をループで回す
// 要素が0のものが見つかったら「在庫切れあり」と出力して終了
// 最後まで0がなければ「在庫切れなし」と出力

コメントに従ってコードを書け

public static void checkOutOfStock(int[] stocks) {
    // 配列をループで回す
    for (int i = 0; i < stocks.length; i++) {
        // 要素が0のものが見つかったら「在庫切れあり」と出力して終了
        if (stocks[i] == 0) {
            System.out.println("在庫切れあり");
            return;
        }
    }
    // 最後まで0がなければ「在庫切れなし」と出力
    System.out.println("在庫切れなし");
}

コードの解説

for (int i = 0; i < stocks.length; i++)
配列全体をループする基本形。i = 0 から始めて、i < length で終えるのが鉄則。

if (stocks[i] == 0)
現在の要素が 0 かどうかを判定。これが「在庫切れ」の定義。

System.out.println("在庫切れあり"); return;
条件に一致したら出力し、そのままメソッドを終了する。
return を使うことで、後続の処理を完全にスキップできる。

System.out.println("在庫切れなし");
ループが最後まで回って 0 が1つも見つからなかった場合にだけ実行される。
条件を満たさなかったことを示す「フォールバック処理」。


つまづきやすいポイント

なぜ break ではなく return を使っているのか?

break はループを抜けるだけ。
その後に続くコード(この場合は「在庫切れなし」の出力)が実行されてしまう。

一方で returnメソッド全体を終了させる
今回は「在庫切れあり」とわかった瞬間にもう何もせず終わっていいから、return が正解。

条件が満たされたら、即終了していい。
それが「判断のあるコード」だ。


teshのひとこと

配列は、ただ「全部見る」ために回すもんじゃねえ。
必要な情報を見つけた瞬間に、終わっていい。

「全部確認する」ことが目的じゃない。
何を探して、いつ終えるか。それを自分のコードに書けるようになるのが、“設計”ってやつだ。

Just keep typing, baby.
ループの目的が明確なら、終わり方も明確になる。


👉 配列修羅道:全体のステップ構成はこちら

他のステップや学習順序を確認したい場合は、
[配列修羅道:全体のステップ構成] をチェックしてくれ。