/** * ドメイン非依存URL出力フィルタ * javadrill.tech移行時はwp_options.home/siteurlのみ変更すればよい * * データベースには絶対URL(https://minner.asia)を保持し、 * 表示時に現在のドメイン(home_url())に動的変換する */ function javadrill_make_urls_dynamic($content) { if (empty($content)) { return $content; } // データベース内の絶対URLを現在のhome_url()に置換 $old_url = 'https://minner.asia'; $new_url = untrailingslashit(home_url()); // http版も対応(念のため) $content = str_replace($old_url, $new_url, $content); $content = str_replace('http://minner.asia', $new_url, $content); return $content; } // 投稿本文、ウィジェット、タームの説明、抜粋に適用 add_filter('the_content', 'javadrill_make_urls_dynamic', 20); add_filter('widget_text', 'javadrill_make_urls_dynamic', 20); add_filter('term_description', 'javadrill_make_urls_dynamic', 20); add_filter('get_the_excerpt', 'javadrill_make_urls_dynamic', 20); 問題 | Javaドリル https://minner.asia 楽々学べるJavaの問題集 Fri, 05 Sep 2025 01:56:57 +0000 ja hourly 1 https://wordpress.org/?v=6.8.3 https://minner.asia/wp-content/uploads/2023/10/cropped-logo-32x32.png 問題 | Javaドリル https://minner.asia 32 32 101 「配列修羅道」 StepFinal 問題 https://minner.asia/archives/4890 https://minner.asia/archives/4890#respond Sun, 18 May 2025 02:37:48 +0000 http://localhost/?p=4890

商品在庫管理ミニアプリを完成させよ

あなたは、これまで作成してきた Product クラスおよびその周辺機能を活用し、小さな在庫管理アプリケーションを完成させる。
このアプリでは、商品の登録・一覧表示・検索・在庫数の更新・在庫の少ない商品の抽出を、すべてメソッドの呼び出しとしてテストコードから操作できる形で構成せよ。

要件

1. 商品一覧を表示する

みかんの在庫数: 5

2.商品名で検索する

みかんの在庫数: 5

3.在庫が少ない商品を表示する(しきい値指定)

バナナ (在庫: 3)

4.在庫数を更新する

りんごの在庫数を15に更新しました

5.該当商品が見つからない場合は "該当商品なし" を出力する

Main.java(テストコード)

import java.util.ArrayList;

public class Main {
    public static void main(String[] args) {
        ArrayList<Product> products = new ArrayList<>();
        products.add(new Product("りんご", 10));
        products.add(new Product("みかん", 5));
        products.add(new Product("バナナ", 3));

        System.out.println("== 一覧表示 ==");
        ProductUtil.printStockList(products);
        // 出力:
        // りんご (在庫: 10)
        // みかん (在庫: 5)
        // バナナ (在庫: 3)

        System.out.println("\n== 商品検索 ==");
        ProductUtil.searchByName(products, "みかん");
        // 出力: みかんの在庫数: 5

        System.out.println("\n== 在庫が少ない商品を表示(5未満)==");
        ProductUtil.printLowStockProducts(products, 5);
        // 出力:
        // バナナ (在庫: 3)

        System.out.println("\n== 在庫数の更新 ==");
        ProductUtil.updateStockByName(products, "りんご", 15);
        // 出力: りんごの在庫数を15に更新しました

        System.out.println("\n== 存在しない商品の検索・更新 ==");
        ProductUtil.searchByName(products, "パイナップル");
        // 出力: 該当商品なし

        ProductUtil.updateStockByName(products, "パイナップル", 10);
        // 出力: 該当商品なし
    }
}

ヒント

  • これまでに作成した以下のメソッドを使うだけで構成可能:
    • printStockList(ArrayList<Product>)
    • searchByName(ArrayList<Product>, String)
    • printLowStockProducts(ArrayList<Product>, int)
    • updateStockByName(ArrayList<Product>, String, int)
  • クラス設計やリストの使い方はStep06〜09で習得済み
  • 「何を表示するか」「どう表示するか」を統一して見やすくすることが大事

→解答例

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

🎯 実習で理解を深めよう

この内容についてJavaDrillで実際に手を動かして学習できます

]]>
https://minner.asia/archives/4890/feed 0
101 「配列修羅道」 Step09 問題 https://minner.asia/archives/4882 https://minner.asia/archives/4882#respond Sun, 18 May 2025 02:27:38 +0000 http://localhost/?p=4882

在庫数を更新せよ

あなたは、Product のリストから指定された商品名の商品を探し、その在庫数を新しい値に更新したい。
該当する商品が見つかれば在庫数を更新し、その後に更新内容を表示する処理を作成せよ。
該当商品がなければ "該当商品なし" と出力せよ。

要件

  • メソッド名:updateStockByName(ProductUtil に定義)
  • 引数:
    • ArrayList<Product> products
    • String keyword(商品名)
    • int newStock(新しい在庫数)
  • 処理:
    • 商品名が一致する Product を探す
    • 在庫数を newStock に変更
    • 変更内容を以下の形式で出力:
りんごの在庫数を10に更新しました
  • 見つからなければ "該当商品なし" を出力

Main.java(テストコード)

import java.util.ArrayList;

public class Main {
    public static void main(String[] args) {
        ArrayList<Product> products = new ArrayList<>();
        products.add(new Product("りんご", 10));
        products.add(new Product("みかん", 5));
        products.add(new Product("バナナ", 3));

        // テストケース01: 存在する商品を更新
        ProductUtil.updateStockByName(products, "りんご", 20);
        // 出力: りんごの在庫数を20に更新しました

        // テストケース02: 存在しない商品を指定
        ProductUtil.updateStockByName(products, "パイナップル", 10);
        // 出力: 該当商品なし
    }
}

ヒント

  • 在庫数の変更は Product に setStock(int newStock) を追加して対応
  • まず equals() で名前が一致する商品を探す
  • 見つかったら setStock(...) で更新 → break で終了
  • 見つからなかった場合に備えて boolean フラグを使う

→解答例

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

🎯 実習で理解を深めよう

この内容についてJavaDrillで実際に手を動かして学習できます

]]>
https://minner.asia/archives/4882/feed 0
101 「配列修羅道」 Step08 問題 https://minner.asia/archives/4873 https://minner.asia/archives/4873#respond Sun, 18 May 2025 02:20:05 +0000 http://localhost/?p=4873

在庫が少ない商品だけを出力せよ

あなたは、Product のリストの中から、在庫数が指定されたしきい値より少ない商品だけを抽出して表示するメソッドを作成せよ。
出力は1行につき1商品とし、以下の要件にあるような形式で表示すること。

要件

  • メソッド名:printLowStockProducts(ProductUtil に定義)
  • 引数:ArrayList<Product> products, int threshold
  • 処理:
    • 在庫数が threshold 未満の商品のみ出力する
  • 出力形式:
バナナ (在庫: 3)

Main.java(テストコード)

import java.util.ArrayList;

public class Main {
    public static void main(String[] args) {
        ArrayList<Product> products = new ArrayList<>();
        products.add(new Product("りんご", 10));
        products.add(new Product("みかん", 5));
        products.add(new Product("バナナ", 3));

        // テストケース01: 閾値5未満
        ProductUtil.printLowStockProducts(products, 5);
        // 出力:
        // バナナ (在庫: 3)

        // テストケース02: 閾値11未満
        ProductUtil.printLowStockProducts(products, 11);
        // 出力:
        // りんご (在庫: 10)
        // みかん (在庫: 5)
        // バナナ (在庫: 3)

        // テストケース03: 閾値3未満
        ProductUtil.printLowStockProducts(products, 3);
        // 出力なし
    }
}

ヒント

  • 在庫数は p.getStock() で取り出せる
  • 比較は < threshold を使う(等しい場合は含まない)
  • 出力は1商品ごとに1行、フォーマットに注意

→解答例

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

🎯 実習で理解を深めよう

この内容についてJavaDrillで実際に手を動かして学習できます

]]>
https://minner.asia/archives/4873/feed 0
101 「配列修羅道」 Step07 問題 https://minner.asia/archives/4865 https://minner.asia/archives/4865#respond Sun, 18 May 2025 02:08:41 +0000 http://localhost/?p=4865

商品名で検索せよ

あなたは、Product のリストから商品名で検索し、該当商品の在庫数を表示するメソッドを作成せよ。
検索キーワードは、テストコード側から引数として渡される。

要件

  • メソッド名:searchByName(ProductUtil に定義)
  • 引数:ArrayList<Product> products, String keyword
  • 処理:
    • 商品名が一致する Product を探す
    • 見つかれば在庫数を表示(System.out.println)
    • 見つからなければ "該当商品なし" と表示

Main.java(テストコード)

import java.util.ArrayList;

public class Main {
    public static void main(String[] args) {
        ArrayList<Product> products = new ArrayList<>();
        products.add(new Product("りんご", 10));
        products.add(new Product("みかん", 5));
        products.add(new Product("バナナ", 3));

        // テストケース01
        ProductUtil.searchByName(products, "みかん");
        // 出力: みかんの在庫数: 5

        // テストケース02
        ProductUtil.searchByName(products, "パイナップル");
        // 出力: 該当商品なし
    }
}

ヒント

  • String の比較は必ず equals() を使う
  • フラグ変数 boolean found を使って最後の判定を行う

→解答例

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

🎯 実習で理解を深めよう

この内容についてJavaDrillで実際に手を動かして学習できます

]]>
https://minner.asia/archives/4865/feed 0
101 「配列修羅道」 Step06 問題 https://minner.asia/archives/4856 https://minner.asia/archives/4856#respond Sun, 18 May 2025 01:56:39 +0000 http://localhost/?p=4856 を作って全商品を出力せよ要件Main.java(テストコード)ヒント🎯 å […]]]>

List<Product> を作って全商品を出力せよ

あなたは、商品を表す Product クラスをすでに作成している。
このクラスを使って複数の商品を表現し、それらを ArrayList<Product> に格納したうえで、すべての商品の情報を1行ずつ出力するプログラムを作成せよ。

要件

  • 商品名と在庫数を持つ Product クラスはすでに存在する(getName() / getStock() が使える)
  • ArrayList<Product> を作成し、以下のデータを追加すること:
    • りんご(在庫: 10)
    • みかん(在庫: 5)
    • バナナ(在庫: 3)
  • リスト内の各商品について、以下のフォーマットで出力すること:
りんご (在庫: 10)

Main.java(テストコード)

import java.util.ArrayList;

public class Main {
    public static void main(String[] args) {
        // 商品リストを作成
        ArrayList<Product> products = new ArrayList<>();

        // 商品を追加
        products.add(new Product("りんご", 10));
        products.add(new Product("みかん", 5));
        products.add(new Product("バナナ", 3));

        // 商品一覧を出力
        for (int i = 0; i < products.size(); i++) {
            Product p = products.get(i);
            System.out.println(p.getName() + " (在庫: " + p.getStock() + ")");
        }

        // 出力:
        // りんご (在庫: 10)
        // みかん (在庫: 5)
        // バナナ (在庫: 3)
    }
}

ヒント

  • リストに商品を追加するには add() を使う
  • リストをループで回す際にリストの長さを取得するために .size() を使う
  • リストから商品を取り出すには .get(i)

→解答例

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

🎯 実習で理解を深めよう

この内容についてJavaDrillで実際に手を動かして学習できます

]]>
https://minner.asia/archives/4856/feed 0
101 「配列修羅道」 Step05 問題 https://minner.asia/archives/4848 https://minner.asia/archives/4848#respond Sun, 18 May 2025 01:36:57 +0000 http://localhost/?p=4848

Product クラスを定義せよ

あなたは、商品を表すクラス Product を作成することになった。
商品は以下の2つの情報を持つ:

  • 商品名(文字列)
  • 在庫数(整数)

この情報を表現するクラス Product を定義し、mainメソッドでインスタンスを作成・表示することで動作を確認せよ。

要件

要件クラス名:Product

フィールド:

  • String name(商品名)
  • int stock(在庫数)

コンストラクタで上記2つの値を受け取れるようにする

メソッド:String getName() / int getStock()(フィールドの値を返す)

表示形式:

りんご (在庫: 10)

テストケース(mainメソッド)

public class Step05_Tests {
    public static void main(String[] args) {
        Product p1 = new Product("りんご", 10);
        Product p2 = new Product("みかん", 5);

        System.out.println(p1.getName() + " (在庫: " + p1.getStock() + ")");
        // 出力: りんご (在庫: 10)

        System.out.println(p2.getName() + " (在庫: " + p2.getStock() + ")");
        // 出力: みかん (在庫: 5)
    }
}

ヒント

  • クラスとは「データ(フィールド)と振る舞い(メソッド)をセットにした設計図」
  • Product クラスを Step05_Tests.java と別ファイルにしてもOK(同ファイルでも可)
  • this.name = name; のように、引数をフィールドに代入する構文に慣れよう

→解答例

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

🎯 実習で理解を深めよう

この内容についてJavaDrillで実際に手を動かして学習できます

]]>
https://minner.asia/archives/4848/feed 0
101 「配列修羅道」 Step04 問題 https://minner.asia/archives/4839 https://minner.asia/archives/4839#respond Sun, 18 May 2025 01:27:57 +0000 http://localhost/?p=4839

商品名を ArrayList に格納せよ

あなたは、複数の商品名を String[] 型の配列として渡された。
この配列を使って、商品名のリストを ArrayList<String> に変換し、1行ずつ出力するメソッドを作成せよ。

要件

  • メソッド名:convertAndPrintList
  • 引数:String[] names(商品名の配列)
  • 処理:
    • 配列から ArrayList<String> を生成する
    • リストに入っている各要素を1行ずつ出力する
  • 出力形式:
りんご
みかん
バナナ

テストケース(mainメソッド)

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

        // テストケース01
        String[] names1 = {"りんご", "みかん", "バナナ"};
        convertAndPrintList(names1);
        // 出力:
        // りんご
        // みかん
        // バナナ

        // テストケース02
        String[] names2 = {"メロン", "ぶどう"};
        convertAndPrintList(names2);
        // 出力:
        // メロン
        // ぶどう
    }

    // ここに convertAndPrintList メソッドを実装する
}

ヒント

  • ArrayList<String> list = new ArrayList<>(); で空のリストを用意
  • for 文で配列を走査し、list.add(...) を使って追加する
  • 出力にはリストの中身を1つずつ System.out.println() で出せばOK

→解答例

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

🎯 実習で理解を深めよう

この内容についてJavaDrillで実際に手を動かして学習できます

]]>
https://minner.asia/archives/4839/feed 0
101 「配列修羅道」 Step03 問題 https://minner.asia/archives/4831 https://minner.asia/archives/4831#respond Sun, 18 May 2025 01:19:34 +0000 http://localhost/?p=4831

商品名と在庫数を対応表示せよ

あなたは、商品名の一覧と、それぞれの在庫数を記録した2つの配列を渡された。
これらの配列を使って、各商品の名前と在庫数を「名前: 数量」の形式で出力するメソッドを作成せよ。

要件

  • メソッド名:printStockList
  • 引数:String[] names(商品名の配列)、int[] stocks(在庫数の配列)
  • 処理:対応するインデックス同士を組み合わせて出力
  • 出力形式(1行ずつ):
りんご: 10
みかん: 5

テストケース(mainメソッド)

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

        // テストケース01
        String[] names1 = {"りんご", "みかん", "バナナ"};
        int[] stocks1 = {10, 5, 3};
        printStockList(names1, stocks1);
        // 出力:
        // りんご: 10
        // みかん: 5
        // バナナ: 3

        // テストケース02
        String[] names2 = {"メロン", "ぶどう"};
        int[] stocks2 = {0, 8};
        printStockList(names2, stocks2);
        // 出力:
        // メロン: 0
        // ぶどう: 8
    }

    // ここに printStockList メソッドを実装する
}

ヒント

  • 配列 names[i] と stocks[i] をペアで使うには、同じインデックス i を使って並行してループする
  • 2つの配列の要素数が異なる場合の扱いは今は考えなくてよい(前提:長さは同じ)
  • 出力は1行ずつ System.out.println(...) で行う

→解答例

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

🎯 実習で理解を深めよう

この内容についてJavaDrillで実際に手を動かして学習できます

]]>
https://minner.asia/archives/4831/feed 0
101 「配列修羅道」 Step02 問題 https://minner.asia/archives/4819 https://minner.asia/archives/4819#respond Sun, 18 May 2025 01:01:29 +0000 http://localhost/?p=4819

在庫切れの商品があるか?

あなたは商品の在庫数を記録した配列を渡された。
この配列の中に、在庫が0のもの(=在庫切れの商品)が1つでもあるかどうかを判定し、結果を標準出力するメソッドを作成せよ。

要件

  • メソッド名:checkOutOfStock
  • 引数:int[] stocks
  • 処理:配列の中に「0」があるかを確認し、以下のいずれかを System.out.println() で出力する。

在庫切れの商品が1つでもあれば:

在庫切れあり

すべての商品が在庫を持っている場合:

在庫切れなし

テストケース(mainメソッド)

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);
        // 出力: "在庫切れあり"
    }

    // ここに checkOutOfStock メソッドを実装する
}

ヒント

  • 配列を1つずつ確認して、0 があればその時点で「在庫切れあり」と出力して終了
  • 最後まで 0 が見つからなければ、「在庫切れなし」と出力
  • boolean 型のフラグ変数を使うか、return ã‚„ break を使ってもよい

→解答例

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

🎯 実習で理解を深めよう

この内容についてJavaDrillで実際に手を動かして学習できます

]]>
https://minner.asia/archives/4819/feed 0
101 「配列修羅道」 Step01 問題 https://minner.asia/archives/4810 https://minner.asia/archives/4810#respond Sun, 18 May 2025 00:23:32 +0000 http://localhost/?p=4810

在庫の合計値を求めよ

あなたは商品の在庫数を記録した配列を渡された。
この配列のすべての要素の合計値を求め、以下の形式で出力するメソッド”printStockSum“を作成せよ。

int[] stocks = {10, 5, 3, 0, 8};

要件

  • 引数:int[] stocks(各商品の在庫数を表す配列)
  • 処理:配列に含まれるすべての在庫数を合計し、標準出力に出力する

出力形式

合計在庫数: 〇〇

テストケース(mainメソッド)

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

        // テストケース01
        int[] stocks1 = {10, 5, 3, 0, 8};
        printStockSum(stocks1);
        // 出力: "合計在庫数: 26"

        // テストケース02
        int[] stocks2 = {0, 0, 0};
        printStockSum(stocks2);
        // 出力: "合計在庫数: 0"

        // テストケース03
        int[] stocks3 = {100};
        printStockSum(stocks3);
        // 出力: "合計在庫数: 100"
    }

    // ここに printStockSum メソッドを実装する
}

ヒント

  • 配列をループで回して、各要素を合計すればよい
  • 出力は System.out.println() を使って、文字列と数値をつなぐ
  • メソッドは static void printStockSum(int[] stocks) という形がよい

→解答例

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

🎯 実習で理解を深めよう

この内容についてJavaDrillで実際に手を動かして学習できます

]]>
https://minner.asia/archives/4810/feed 0