/** * ドメイン非依存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 02:23:33 +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 006 繰り返し(break文とcontinue文) 026 解答例 https://minner.asia/archives/2022 https://minner.asia/archives/2022#respond Wed, 15 Nov 2023 00:39:27 +0000 http://localhost/?p=2022
public class QuadrupleLoopExample {
    public static void main(String[] args) {
        for (int i = 1; i <= 100; i++) {
            // 外側のループ: 1から100までの整数
            if (i % 10 == 0) {
                // 10の倍数の場合、処理をスキップ
                continue;
            }

            for (int j = 1; j <= 100; j++) {
                // 2番目のループ: 1から100までの整数
                if (j % 3 == 0) {
                    // 3の倍数の場合、処理をスキップ
                    continue;
                }

                for (int k = 1; k <= 100; k++) {
                    // 3番目のループ: 1から100までの整数
                    if (k % 2 == 0) {
                        // 2の倍数の場合、処理をスキップ
                        continue;
                    }

                    for (int l = 1; l <= 100; l++) {
                        // 4番目のループ: 1から100までの整数
                        // ここで各ループの条件に合致した場合の処理を記述
                    }
                }
            }
        }
    }
}

このプログラムは、四重のforループを使用して1から100までの整数を生成し、一部の条件に合致する場合に各ループの処理をスキップする例です。以下にコードの解説を行います。

  1. 外側のループ(i):
    • for (int i = 1; i <= 100; i++)で、iは1から100までの整数を表します。
    • if (i % 10 == 0)でiが10の倍数の場合、continue文が実行され、外側のループの残りの処理がスキップされます。
  2. 2番目のループ(j):
    • for (int j = 1; j <= 100; j++)で、jは1から100までの整数を表します。
    • if (j % 3 == 0)でjが3の倍数の場合、continue文が実行され、2番目のループの残りの処理がスキップされます。
  3. 3番目のループ(k):
    • for (int k = 1; k <= 100; k++)で、kは1から100までの整数を表します。
    • if (k % 2 == 0)でkが2の倍数の場合、continue文が実行され、3番目のループの残りの処理がスキップされます。
  4. 4番目のループ(l):
    • for (int l = 1; l <= 100; l++)で、lは1から100までの整数を表します。
    • ここで各ループの条件に合致した場合の処理を記述することができます。ただし、現在のコードでは特に何も記述されていません。

このプログラムは、四重のforループを使用して非常に複雑であり、条件によっては多くの場合で処理がスキップされる可能性があります。コード内で何を達成しようとしているかによって、最適な実装が異なるかもしれません。

「006 繰り返し」問題集リスト

🎯 実習で理解を深めよう

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

]]>
https://minner.asia/archives/2022/feed 0
006 繰り返し(break文とcontinue文) 025 解答例 https://minner.asia/archives/2016 https://minner.asia/archives/2016#respond Wed, 15 Nov 2023 00:31:08 +0000 http://localhost/?p=2016
public class TripleLoopExample {
    public static void main(String[] args) {
        outerLoop:
        for (int i = 1; i <= 20; i++) {
            // 外側のループ: 1から20までの整数
            for (int j = 1; j <= 20; j++) {
                // 中間のループ: 1から20までの整数
                for (int k = 1; k <= 20; k++) {
                    // 内側のループ: 1から20までの整数

                    // 条件に合致する場合、break文を使用して全てのループを終了させる
                    if (i % 5 == 0 && j % 3 == 0 && k % 2 == 0) {
                        break outerLoop;
                    }

                    // 条件に合致しない場合の処理(例えば、表示など)
                    System.out.println("i: " + i + ", j: " + j + ", k: " + k);
                }
            }
        }
    }
}

このプログラムでは、外側のループ(i)、中間のループ(j)、内側のループ(k)が条件に合致した場合、break outerLoop; により全てのループが終了します。指定された条件が満たされた場合に break 文を使用する際に、外側のループにラベル(outerLoop)を指定することで、最も外側のループが終了するようになります。

break文やcontinue文でラベルを使う

Javaのbreakとcontinue文には、ラベル(label)を使って、特定の外側のループから抜けたり、指定のループをスキップする機能があります。ラベルを使うことで、ネストされた複数のループがある場合に、特定のループに対して break や continue を行うことができます。

以下は、ラベルを使った break と continue の基本的な構文です。

outerLabel:
for (int i = 0; i < 5; i++) {
    innerLabel:
    for (int j = 0; j < 5; j++) {
        // 何らかの処理

        if (条件) {
            // 外側のループを終了
            break outerLabel;
            
            // 内側のループをスキップして次のイテレーションへ
            // continue outerLabel;
        }
    }
}

ここで outerLabel と innerLabel はユーザーが指定するラベルの名前です。break文により指定したラベルに対応するループが終了し、continue文により指定したラベルに対応するループがスキップされ、次のイテレーションが開始されます。

ただし、break や continue をラベルを使って使うことは一般的には避けるべきです。コードの可読性が低下しやすくなりますので、注意が必要です。通常、適切な条件文を使って、ネストされたループを抜けるかスキップするほうが好ましいです。

「006 繰り返し」問題集リスト

🎯 実習で理解を深めよう

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

]]>
https://minner.asia/archives/2016/feed 0
006 繰り返し(break文とcontinue文) 024 解答例 https://minner.asia/archives/2009 https://minner.asia/archives/2009#respond Wed, 15 Nov 2023 00:20:39 +0000 http://localhost/?p=2009
public class NestedForLoopExample {
    public static void main(String[] args) {
        for (int i = 1; i <= 10; i++) {
            // 外側のループ: 1から10までの整数
            for (int j = 1; j <= 1; j++) {
                // 内側のループ: 各整数に対する処理
                // 奇数の場合は表示をスキップ
                if (i % 2 != 0 || j % 2 != 0) {
                    // continue文を使用して奇数の場合の処理をスキップ
                    continue;
                }

                // 偶数の場合は数値を表示
                System.out.println(i);
            }
        }
    }
}

このプログラムでは、外側のループでiかjが奇数の場合、内側のループがスキップされるようになっています。その結果、奇数の場合は表示をスキップして次の数に進みます。

深いループネストからのbreakとcontinue

深いループネストからの break と continue の使用について解説します。

  1. break の利用例:
    break文は、ループを終了させるために使用されます。深いネストの中で条件が満たされた場合、最も内側のループから抜け出すことができます。

例えば、以下は深いネストからのbreakを使用した例です。

for (int i = 1; i <= 5; i++) {
    for (int j = 1; j <= 5; j++) {
        if (i * j == 12) {
            System.out.println("条件が満たされました。");
            break; // 最も内側のループを終了させる
        }
    }
}

このコードでは、i * j == 12 の条件が満たされた場合、break;により最も内側のforループが終了します。このように、ラベルを使用せずにbreak文を利用することも可能です。

  1. continue の利用例:
    continue文は、その時点でのイテレーションをスキップして、次のイテレーションに進むために使用されます。

例えば、以下は深いネストからのcontinueを使用した例です。

for (int i = 1; i <= 5; i++) {
    for (int j = 1; j <= 5; j++) {
        if (i * j % 2 == 0) {
            continue; // 偶数の場合、次のイテレーションに進む
        }
        System.out.println("奇数: " + i * j);
    }
}

上記の例では、i * j が偶数の場合、continue;によりその時点の内側のforループをスキップして次のイテレーションに進みます。

「006 繰り返し」問題集リスト

🎯 実習で理解を深めよう

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

]]>
https://minner.asia/archives/2009/feed 0
006 繰り返し(break文とcontinue文) 023 解答例 https://minner.asia/archives/1996 https://minner.asia/archives/1996#respond Tue, 14 Nov 2023 23:45:24 +0000 http://localhost/?p=1996
public class ForLoopExample {
    public static void main(String[] args) {
        int count = 0;

        for (int i = 1; i <= 50; i++) {
            // 条件に合致する場合だけ処理を実行
            if (i % 3 == 0 && i % 5 != 0) {
                // 表示
                System.out.println(i);
                // カウントをインクリメント
                count++;
            }

            // 10回表示したらループを終了
            if (count == 10) {
                break;
            }
        }
    }
}

このプログラムでは、forループを使用して1から50までの整数を順番に取得し、if文で条件に合致する場合にのみ処理を実行し、continue文を使用してそれ以外の場合はスキップします。さらに、10回表示したらbreak文によりループを終了させています。結果として、条件に合致する10個の数が表示されます。

break文とcontinue文の併用

break文とcontinue文を併用すると、特定の条件が満たされた場合にループを終了したり、スキップするなど、柔軟な制御が可能となります。以下に、break文とcontinue文を併用する際の基本的な考え方と使用例を示します。

基本的な考え方:

  1. break文: 条件が満たされた場合にループ全体を終了します。
  2. continue文: 条件が満たされた場合にそのイテレーションだけをスキップして、次のイテレーションに進みます。

使用例

以下は、break文とcontinue文を併用した別の使用例です。この例では、1から100までの整数を順番に取得し、5の倍数でかつ奇数の場合に処理をスキップし、それ以外の場合は数値を表示します。ただし、10個表示したらループを終了します。

public class BreakContinueExample {
    public static void main(String[] args) {
        int count = 0;

        for (int i = 1; i <= 100; i++) {
            // 5の倍数かつ奇数の場合はスキップ
            if (i % 5 == 0 && i % 2 != 0) {
                continue;
            }

            // 数値を表示
            System.out.println(i);

            // 10回表示したらループを終了
            count++;
            if (count == 10) {
                break;
            }
        }
    }
}

このプログラムでは、forループを使用して1から100までの整数を順番に取得し、if文とcontinue文を使用して5の倍数かつ奇数の場合はスキップし、それ以外の場合は数値を表示しています。また、10回表示したらbreak文によりループを終了させています。結果として、条件に合致する数が10個表示されます。

「006 繰り返し」問題集リスト

🎯 実習で理解を深めよう

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

]]>
https://minner.asia/archives/1996/feed 0
006 繰り返し(break文とcontinue文) 022 解答例 https://minner.asia/archives/1986 https://minner.asia/archives/1986#respond Tue, 14 Nov 2023 23:34:11 +0000 http://localhost/?p=1986
public class ContinueExample {
    public static void main(String[] args) {
        for (int i = 1; i <= 10; i++) {
            // 5の倍数の場合は次の数に進む
            if (i % 5 == 0) {
                continue;
            }
            // 奇数の場合は数値を表示
            if (i % 2 != 0) {
                System.out.println(i);
            }
        }
    }
}

このプログラムでは、forループを使用して1から10までの整数を順番に取得し、if文とcontinue文を使用して5の倍数の場合はcontinue文により次の数に進み、それ以外の奇数の場合には数値を表示しています。結果として、1, 3, 7, 9といった奇数が表示され、5の倍数である5は表示されません。

continueæ–‡

continue文は、ループ内でその時点での処理を中断し、次のループの開始地点に進むために使用されます。つまり、continue文が実行されると、その時点での処理が中断され、次のループイテレーションが開始されます。

以下は、continue文の基本的な構造と使用例です。

基本構文

continue;

使用例

以下は、continue文の使用例です。この例では、whileループを使用して1から100までの整数のうち、奇数だけを表示するプログラムです。ただし、3の倍数の場合は表示せず、次の数に進みます。

public class ContinueExample {
    public static void main(String[] args) {
        int number = 1;

        while (number <= 100) {
            // 3の倍数の場合は次の数に進む
            if (number % 3 == 0) {
                number++;
                continue;
            }
            
            // 奇数の場合は数値を表示
            if (number % 2 != 0) {
                System.out.println(number);
            }

            // 次の数に進む
            number++;
        }
    }
}

このプログラムでは、whileループを使用して1から100までの整数を順番に取得し、if文とcontinue文を使用して3の倍数の場合は次の数に進み、それ以外の奇数の場合には数値を表示しています。結果として、1, 5, 7, 11, 13, … といった奇数が表示され、3の倍数である3, 6, 9, … は表示されません。

「006 繰り返し」問題集リスト

🎯 実習で理解を深めよう

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

]]>
https://minner.asia/archives/1986/feed 0
006 繰り返し(break文とcontinue文) 021 解答例 https://minner.asia/archives/1981 https://minner.asia/archives/1981#respond Tue, 14 Nov 2023 23:27:12 +0000 http://localhost/?p=1981
public class BreakExample {
    public static void main(String[] args) {
        for (int i = 1; i <= 10; i++) {
            // 3の倍数の場合はループを終了
            if (i % 3 == 0) {
                break;
            }
            // それ以外の場合は数値を表示
            System.out.println(i);
        }
    }
}

このプログラムでは、forループを使用して1から10までの整数を順番に取得し、if文とbreakを使用して3の倍数の場合にループを終了しています。結果として、1から3までの整数が表示され、3の倍数である4以降の数は表示されません。

breakæ–‡

break文は、プログラム内のループやswitch文から直ちに脱出するために使用されます。break文が実行されると、その文が含まれている最も内側のループやswitch文から抜け出します。

以下は、break文の基本的な構造と使用例です。

基本構文

break;

使用例

以下は、break文の別の使用例です。この例では、whileループを使用して1から100までの整数を順番に取得し、5の倍数かつ奇数の場合にループを終了するプログラムです。

public class BreakExample {
    public static void main(String[] args) {
        int number = 1;

        while (number <= 100) {
            // 5の倍数かつ奇数の場合はループを終了
            if (number % 5 == 0 && number % 2 != 0) {
                break;
            }

            // 数値を表示
            System.out.println(number);

            // 次の数に進む
            number++;
        }
    }
}

このプログラムでは、whileループを使用して1から100までの整数を順番に取得し、if文とbreak文を使用して5の倍数かつ奇数の場合にはループを終了させています。結果として、1, 2, 3, 4, 5の倍数かつ奇数である10でループが終了します。

「006 繰り返し」問題集リスト

🎯 実習で理解を深めよう

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

]]>
https://minner.asia/archives/1981/feed 0
006 繰り返し(do〜while文) 020 解答例 https://minner.asia/archives/1970 https://minner.asia/archives/1970#respond Mon, 13 Nov 2023 22:40:04 +0000 http://localhost/?p=1970
import java.util.Scanner;

public class MultipleOfTwoExample {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int userInput;

        do {
            // ユーザーから2の倍数を入力させるメッセージを表示
            System.out.print("2の倍数を入力してください: ");

            // ユーザーからの入力を受け取る
            userInput = scanner.nextInt();

            // 入力が2の倍数でない場合はメッセージを表示
            if (userInput % 2 != 0) {
                System.out.println("入力が2の倍数ではありません。再度入力してください。");
            }

        } while (userInput % 2 != 0);

        // プログラムの終了前にScannerオブジェクトをクローズ
        scanner.close();

        // 入力が2の倍数の場合の処理
        System.out.println("入力された数値は2の倍数です。");
    }
}

このプログラムでは、do-while文を使用してユーザーに2の倍数を入力させています。ユーザーが2の倍数でない数を入力した場合は、再度入力を促すメッセージが表示されます。ユーザーが正しい入力(2の倍数)を行うと、プログラムは終了し、対応するメッセージが表示されます。

入力チェックのためのdo-while文

ユーザーが正しい形式や範囲で入力するまで、何度でも再入力を求める仕組みとしてdo-while文を使うことができます。以下はその基本的な解説です。

1.Scannerを使ってユーザーからの入力を受け取る:

Scanner クラスを使用して、ユーザーからの入力を受け取ります。

Scanner scanner = new Scanner(System.in);

2.do-while文の構造:

do-while文の構造を理解し、最初にユーザーからの入力を受け取り、その後に条件を評価します。

do {
    // ユーザーからの入力を求めるメッセージを表示

    // ユーザーからの入力を受け取る

} while (条件式);

3.入力チェック:

ユーザーが入力した値が特定の形式や範囲に合致しているかどうかを判定します。

if (条件に合致していない場合) {
    // 入力が不正な場合のメッセージを表示
}

4.条件の設定:

ユーザーが正しい入力を行った場合は、whileの条件が false になり、ループを終了します。

} while (条件に合致していない場合);

これらのステップを組み合わせることで、入力チェックを行い、ユーザーに正しい入力を行わせるプログラムを構築できます。プログラム例として先程の「2の倍数を入力させ、入力が2の倍数でない場合は再度入力を求める」プログラムがその一例です。

「006 繰り返し」問題集リスト

🎯 実習で理解を深めよう

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

]]>
https://minner.asia/archives/1970/feed 0
006 繰り返し(do〜while文) 019 解答例 https://minner.asia/archives/1964 https://minner.asia/archives/1964#respond Mon, 13 Nov 2023 22:27:38 +0000 http://localhost/?p=1964
import java.util.Scanner;

public class UserInputExample {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int userInput;

        do {
            // ユーザーに1から10までの数値を入力させるメッセージを表示
            System.out.print("1から10までの数値を入力してください: ");

            // ユーザーからの入力を受け取る
            userInput = scanner.nextInt();

            // 入力が1から10までの範囲外の場合はメッセージを表示
            if (userInput < 1 || userInput > 10) {
                System.out.println("入力が範囲外です。再度入力してください。");
            }

        } while (userInput < 1 || userInput > 10);

        // プログラムの終了前にScannerオブジェクトをクローズ
        scanner.close();

        // 入力が1から10までの範囲内の場合の処理
        System.out.println("入力された数値: " + userInput);
    }
}

このプログラムでは、do-while文を使用してユーザーに1から10までの数値を入力させています。ユーザーが範囲外の数値を入力した場合は、再度入力を促すメッセージが表示されます。ユーザーが1から10までの範囲内の数値を入力すると、プログラムは終了し、その数値が表示されます。

「006 繰り返し」問題集リスト

🎯 実習で理解を深めよう

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

]]>
https://minner.asia/archives/1964/feed 0
006 繰り返し(do〜while文) 018 解答例 https://minner.asia/archives/1957 https://minner.asia/archives/1957#respond Mon, 13 Nov 2023 22:22:38 +0000 http://localhost/?p=1957
public class OddNumbersExample {
    public static void main(String[] args) {
        int number = 1;

        do {
            // 奇数の場合に表示
            if (number % 2 != 0) {
                System.out.println(number);
            }

            // 変数の更新
            number++;

        } while (number <= 20);
    }
}

このプログラムでは、do-while文を使用して1から20までの奇数を表示しています。変数 number が奇数の場合に System.out.println(number); で表示し、最後に number++ で変数を更新しています。do-while文の条件は number <= 20 で、変数 number が20以下の場合は繰り返し処理が行われます。

「006 繰り返し」問題集リスト

🎯 実習で理解を深めよう

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

]]>
https://minner.asia/archives/1957/feed 0
006 繰り返し(do〜while文) 017 解答例 https://minner.asia/archives/1950 https://minner.asia/archives/1950#respond Mon, 13 Nov 2023 22:16:37 +0000 http://localhost/?p=1950
import java.util.Scanner;

public class DoWhileExample {
    public static void main(String[] args) {
        // Scannerオブジェクトの作成
        Scanner scanner = new Scanner(System.in);

        do {
            // ユーザーに整数の入力を促すメッセージ
            System.out.print("整数を入力してください (0を入力すると終了): ");

            // ユーザーからの整数の入力を受け取る
            int userInput = scanner.nextInt();

            // 入力された整数が0でない限り表示し続ける
            if (userInput != 0) {
                System.out.println("入力された整数: " + userInput);
            }

        } while (userInput != 0);

        // プログラムの終了前にScannerオブジェクトをクローズ
        scanner.close();
    }
}

このプログラムでは、ユーザーに整数を入力させ、入力された整数が0でない限り、入力された整数を表示し続けます。0が入力されると、ループが終了します。プログラムの最後で scanner.close() を呼び出して、Scanner オブジェクトをクローズしています。

do-while文のブロックの中で入力を受け、その結果で判定する

do-while文のブロックの中で入力を受け、その結果で判定するプロセスは、ユーザーに対して何らかの質問や操作を行い、その結果を使ってループの制御を行う方法です。以下に、このプロセスの一般的な手順と解説を示します。

do-while文の基本構造:

do-while 文はまずループ本体を実行し、その後に条件を評価します。このため、最初に一度はループ本体が実行されます。

do {
    // ループ本体
} while (条件式);

ユーザーからの入力の受け取り:

Scanner クラスを使用してユーザーからの入力を受け取ります。このとき、変数に入力値を格納します。

Scanner scanner = new Scanner(System.in);
int userInput = scanner.nextInt();

ユーザーからの入力を使った処理:

入力された値に基づいて条件判定や処理を行います。

if (userInput == 0) {
    // ループを終了するための条件が満たされた場合の処理
} else {
    // 入力に応じた処理
}

変数の更新:

ループ本体で必要な変数の更新を行います。これによって、次の繰り返しに備えます。

// 例: ユーザーに新しい入力を促すメッセージを表示
System.out.print("新しい整数を入力してください: ");
userInput = scanner.nextInt();

以下に、これらのステップを組み合わせて、「do-while文のブロックの中で入力を受け、その結果で判定する」プログラムの一部を示します。

import java.util.Scanner;

public class DoWhileInputExample {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        char userResponse;

        do {
            // ユーザーに続行するかどうかを尋ねるメッセージを表示
            System.out.print("続行しますか? (y/n): ");

            // ユーザーからの入力を受け取る
            userResponse = scanner.next().charAt(0);

            // ユーザーの入力に応じた処理
            if (userResponse == 'y' || userResponse == 'Y') {
                System.out.println("プログラムが続行されます!");
            } else {
                System.out.println("プログラムを終了します。");
            }

        } while (userResponse == 'y' || userResponse == 'Y');

        scanner.close();
    }
}

このプログラムでは、ユーザーに「続行しますか?」と尋ね、ユーザーが「y」または「Y」を入力する限り、ループが続きます。ユーザーが「n」またはそれ以外の文字を入力すると、プログラムが終了します。このような入力に基づく制御構造は、対話的なプログラムや繰り返しの必要がある場面で有用です。

「006 繰り返し」問題集リスト

🎯 実習で理解を深めよう

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

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