101 「配列修羅道」 Step02 解答例

public class Step02_Tests {
    public static void main(String[] args) {

        // テストケース01
        int[] stocks1 = {10, 5, 3, 0, 8};
        checkOutOfStock(stocks1);
        // 出力: "在庫切れあり"

        // テストケース02
        int[] stocks2 = {1, 2, 3};
        checkOutOfStock(stocks2);
        // 出力: "在庫切れなし"

        // テストケース03
        int[] stocks3 = {0, 0, 0};
        checkOutOfStock(stocks3);
        // 出力: "在庫切れあり"
    }

    // 在庫切れの有無を判定して出力するメソッド
    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("在庫切れなし");
    }
}

解説

解説在庫が0の商品が1つでもあるかどうかを調べて、出力するメソッドを作る

このステップでは、配列の中に特定の条件(在庫0)を満たす要素が1つでもあるかどうかを調べるという処理をメソッドとして実装します。

これは「検索処理の最初の型」を学ぶ場です。
どこかに該当するものが「あるか/ないか」を判断する処理は、実務でも非常に多く使われます。

ポイント

1.public static void checkOutOfStock(int[] stocks)

  • 配列 stocks を引数として受け取るメソッド。
  • 複数の在庫パターン(テストケース)に対して、同じ処理を何度も使い回せるようになる。

2. for (int i = 0; i < stocks.length; i++)

  • 配列の先頭から最後まで、1つずつ在庫数をチェック。
  • 各要素 stocks[i] に対して、「それが0かどうか」を判定する。

3. if (stocks[i] == 0)

  • 在庫数が0、つまり在庫切れの商品を見つけた瞬間に、「在庫切れあり」と出力する。
  • return; を使って、その場でメソッドを終了する。

4. System.out.println("在庫切れなし");

  • この行は、ループが最後まで終わったあとに実行される。
  • つまり、「在庫0の商品が1つも見つからなかった」=「すべて在庫あり」だった場合だけ、ここにたどり着く。

このメソッドの流れ

  • 配列を順番に見ていく
  • 0 が見つかった時点で「在庫切れあり」を出力 → 終了
  • 最後まで 0 が見つからなかった場合のみ「在庫切れなし」を出力

101 ステップアップ問題 「配列修羅道」


👉 Just Keep Typing, Baby!では、この「配列修羅道」でつまづいた人向けの解説をしています。こちらもぜひ!