JAVA練習問題1-3:分岐処理と繰り返し処理

記事内に商品プロモーションを含む場合があります

JAVAの初心者向け問題1-3:分岐処理と繰り返し処理

この問題を解くために必要な知識:
コメントの書き方、変数と定数、基本データ型とプリミティブ型、四則演算と論理演算、入力と出力、配列、分岐処理(if、if~else、switch)、繰り返し処理(for、while、do~while)

<<前の問題 問題集Top 次の問題>>

JAVAの文法「分岐処理と繰り返し処理」とは

ここでは分岐処理と繰り返し処理の意味や使い方を復習します。必要ない方はここをクリックして練習問題へ飛びましょう。




Javaのプログラミングを学び始めると、必ず目にするのが分岐処理繰り返し処理です。

この二つは、プログラムが特定の条件に基づいて異なる動作をするために重要な役割を果たします。

また、特定の処理を何度も繰り返すときにも非常に便利です。今回は、初心者向けにこれらの基本的な使い方を丁寧に解説していきます。

分岐処理とは?

分岐処理とは、プログラムが条件に応じて異なる動作を行う処理のことです。Javaでは、分岐処理に使われる主な文法としてif文、else文、else if文があります。

if文の基本

if文は、条件が**真(true)**の場合にだけ実行される処理を指定します。以下がその基本的な構文です。

if (条件) {
    // 条件が真(true)のときに実行される処理
}

例:if文を使った基本的なプログラム

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

        // numberが10であれば、このブロックが実行される
        if (number == 10) {
            System.out.println("numberは10です");
        }
    }
}

このプログラムでは、変数numberが10であるかどうかをチェックしています。条件が真であれば、「numberは10です」というメッセージが表示されます。

else文とelse if文

else文とelse if文を使うことで、条件に応じたさらに複雑な分岐処理が可能になります。

  • else if文:追加の条件を設定したい場合に使います。
  • else文:すべての条件が偽(false)だった場合に実行される処理を指定します。

例:else if文とelse文を使ったプログラム

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

        if (number < 10) {
            System.out.println("numberは10未満です");
        } else if (number == 10) {
            System.out.println("numberは10です");
        } else {
            System.out.println("numberは10より大きいです");
        }
    }
}

このプログラムでは、変数numberの値に応じて、異なるメッセージが表示されます。もしnumberが10より小さいなら「10未満」、10と等しいなら「10です」、それ以外の場合は「10より大きい」というメッセージが表示されます。

繰り返し処理とは?

繰り返し処理とは、同じ処理を複数回繰り返すための文法です。Javaでは、繰り返し処理に使われる主な構文としてforループとwhileループがあります。

forループ

forループは、特定の回数だけ繰り返し処理を行うときに使われます。構文は以下の通りです。

for (初期化; 条件; 増分) {
    // 繰り返し処理されるブロック
}
  • 初期化:ループを始める前に一度だけ実行されるコード(通常、ループカウンタの初期値を設定します)。
  • 条件:ループを続けるかどうかを判断する条件。
  • 増分:ループの各回終了時に実行される処理(通常はループカウンタの更新)。

例:forループを使ったプログラム

public class ForLoopExample {
    public static void main(String[] args) {
        for (int i = 1; i <= 5; i++) {
            System.out.println("繰り返し回数: " + i);
        }
    }
}

このプログラムでは、iが1から5までの間、合計5回ループが実行され、「繰り返し回数:」のメッセージが表示されます。

まとめ

分岐処理繰り返し処理は、Javaプログラミングの基礎中の基礎です。

分岐処理を使うと、プログラムが条件に応じて異なる動作をします。繰り返し処理を使うと、特定の処理を何度も繰り返すことができます。さらに、これらを組み合わせることで、非常に柔軟で強力なプログラムを作成できるようになります。

これからも分岐処理と繰り返し処理を練習しながら、理解を深めていきましょう。

JAVA練習問題1-3_分岐処理と繰り返し処理





0から100までの整数を入力し、その数が偶数か奇数かを判定するプログラムを作成しましょう。

このプログラムは、ユーザーから10回整数を入力してもらい、その都度結果を表示します。

この問題の要件

以下の要件に従ってプログラムを完成させてください。

  • Scannerクラスを使用してユーザーから整数を入力すること。
  • 繰り返し処理を使用して10回入力を受け付けること。
  • 入力された整数が偶数か奇数かを判定するために、if文を使用すること。

ただし、以下のような実行結果となること。

----- ↓出力される結果の例↓ -----

0から100までの整数を入力してください: 4
4 は偶数です。
0から100までの整数を入力してください: 7
7 は奇数です。
0から100までの整数を入力してください: 10
10 は偶数です。
0から100までの整数を入力してください: 25
25 は奇数です。
0から100までの整数を入力してください: 36
36 は偶数です。
0から100までの整数を入力してください: 49
49 は奇数です。
0から100までの整数を入力してください: 50
50 は偶数です。
0から100までの整数を入力してください: 63
63 は奇数です。
0から100までの整数を入力してください: 88
88 は偶数です。
0から100までの整数を入力してください: 91
91 は奇数です。

----- ↑出力される結果の例↑ -----

この問題を解くヒント

1からコードを組み立てることが難しい場合は、以下のヒントを開いて参考にしましょう。

ヒント1【コードの構成を見る】

正解のコードは上から順に以下のような構成となっています。

1.Scannerクラスの使用宣言
2.EvenOddCheckerクラスの定義
3.mainメソッド
 3-1.Scannerオブジェクトの作成
 3-2.繰り返し処理を10回行うためのfor文
  3-2-1.ユーザーに入力を指示
  3-2-2.ユーザーが入力した数値をnumberに格納
  3-2-3.分岐処理で偶数か奇数かを判定
 3-3.Scannerオブジェクトを閉じる

ヒント2【穴埋め問題にする】

以下のコードをコピーし、コメントに従ってコードを完成させて下さい。

import java.util.Scanner;

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

        for (int i = 0; i < 10; i++) { // 繰り返し処理を10回行う
            System.out.print("0から100までの整数を入力してください: ");
            // ***このコメントを消して、scannerを使用して変数に数値を代入するコードを書いて下さい。***
            // 分岐処理で偶数か奇数かを判定する
            // ***このコメントを消して、if文で偶数か奇数かを判定してそれを表示するコードを書いて下さい。***
        }
        scanner.close(); // スキャナーを閉じる
    }
}

 

このヒントを見てもまだ回答を導き出すのが難しいと感じる場合は、先に正解のコードと解説を見て内容を理解するようにしましょう。

解答例

この問題の一つの正解例とそのコードの解説を以下に示します。

正解コードの例

例えば以下のようなプログラムが考えられます。

********************

import java.util.Scanner;

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

        for (int i = 0; i < 10; i++) { // 繰り返し処理を10回行う
            System.out.print("0から100までの整数を入力してください: ");
            int number = scanner.nextInt();

            // 分岐処理で偶数か奇数かを判定する
            if (number % 2 == 0) {
                System.out.println(number + " は偶数です。");
            } else {
                System.out.println(number + " は奇数です。");
            }
        }
        scanner.close(); // スキャナーを閉じる
    }
}

********************

コードの解説

このプログラムは、ユーザーに0から100までの整数を入力してもらい、その数が偶数か奇数かを判定するものです。

繰り返し処理(ループ)と分岐処理(条件分岐)を使って、10回まで入力と判定を繰り返します。

初心者向けに、このプログラムの各部分をブロックごとに解説します。

Scannerのインポートとスキャナーの初期化

import java.util.Scanner;

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

この部分では、ユーザーの入力を受け取るためにScannerクラスをインポートし、そのインスタンスを作成しています。

Scannerは、キーボードから入力を受け取るために使用するJava標準ライブラリのクラスです。new Scanner(System.in)で、入力を受け付けるための準備をしています。

繰り返し処理 (forループ)

for (int i = 0; i < 10; i++) { // 繰り返し処理を10回行う

この行では、forループを使って10回繰り返し処理を行うようにしています。i = 0から始まり、i < 10の間はループが続きます。つまり、iが0から9までの10回、繰り返し処理を行います。

  • 初期化: i = 0 でカウンタ変数iを初期化。
  • 条件: i < 10 で、iが10未満である限りループが続く。
  • 増分: i++ で、ループのたびにiを1ずつ増やす。

ユーザー入力の受け取り

System.out.print("0から100までの整数を入力してください: ");
int number = scanner.nextInt();

System.out.printでメッセージを表示し、ユーザーに0から100までの整数を入力してもらいます。

scanner.nextInt()を使って、ユーザーが入力した整数をnumberという変数に格納します。この操作を10回繰り返すことになります。

分岐処理 (if文とelse文)

if (number % 2 == 0) {
    System.out.println(number + " は偶数です。");
} else {
    System.out.println(number + " は奇数です。");
}

ここでは、分岐処理を行っています。if文を使って、ユーザーが入力した数numberが偶数か奇数かを判定します。

  • number % 2 == 0 では、numberを2で割った余りが0であるかどうかを確認します。余りが0の場合、その数は偶数です。
  • elseは、上記の条件が成り立たない(つまり、奇数である)場合に実行される処理です。

スキャナーを閉じる

scanner.close(); // スキャナーを閉じる

この行では、プログラムの最後にscannerを閉じています。これは、リソースを解放し、入力の受け付けを終了するための処理です。

scanner.close()を忘れずに呼び出すことは、良い習慣です。

まとめ

このプログラムは、繰り返し処理分岐処理を組み合わせたシンプルなJavaプログラムです。繰り返し処理を使ってユーザーから10回まで入力を受け付け、分岐処理でその入力が偶数か奇数かを判定して表示します。

  • 繰り返し処理(forループ): 決まった回数だけ処理を繰り返すために使います。
  • 分岐処理(if-else文): 条件に応じて異なる処理を実行するために使います。

この2つの重要な構文を理解することで、さらに複雑なプログラムを作成できるようになるでしょう。

<<前の問題 問題集Top 次の問題>>

この問題への質問・コメント

この問題を作成するにあたりAIを活用しています。

問題ないことは確認していますが、もし間違いや表現の違和感などありましたら、ご指摘頂けると大変助かります。






    JAVA練習問題集へ戻る
    トップページへ戻る