続・とってもわかりやすいJAVA 【サンプルプログラム4 while文】


今回はwhile文のサンプルです。

課題形式で作ってみましょう。

では、

入力された数が奇数か偶数か判定するプログラムを作成せよ。
ただし、望む限り何回でも入力・判定が繰り返せるようにしなさい。

Practice_04_01

判定までは簡単かと思います。

Practice_04.java(判定のみ)

import java.util.Scanner;

public class Practice_04 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("奇数か偶数かの判定を行います");
        System.out.print("数字を入力して下さい : ");
        int n = sc.nextInt();

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

問題はこれをどうやって繰り返すのか、ということです。
今回はタイトルにある通り、while文を使ってみます。

Practice_04.java

import java.util.Scanner;

public class Practice_04 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int retry;
        System.out.println("奇数か偶数かの判定を行います");

        do {
            System.out.print("数字を入力して下さい : ");
            int n = sc.nextInt();
            if(n % 2 == 0) {
                System.out.println(n + " は偶数です");
            } else {
                System.out.println(n + " は奇数です");
            }
            System.out.print("もう一度? Yesならば1、Noならばそれ以外の数を入力して下さい : ");
            retry = sc.nextInt();
            System.out.println(); // 改行
        } while(retry == 1);
    }
}

これで繰り返し実行することができます。

ポイント

今回はwhile文の中でもdo while文を使ってみました。
そうすれば、判定処理のあとに条件判定を行うことができます。
6行目で繰り返すかどうかの変数retryを用意。
そして行目のdo whileの条件判定で入力された値が「1」かどうかで条件判定を行います。
すると「1」が入力され続ける限り、奇数偶数の判定を繰り返すことができます。

Practice_04.java(別解)

import java.util.Scanner;

public class Practice_04 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("奇数か偶数かの判定を行います");

        while(true) {
            System.out.print("数字を入力して下さい : ");
            int n = sc.nextInt();
            if(n % 2 == 0) {
                System.out.println(n + " は偶数です");
            } else {
                System.out.println(n + " は奇数です");
            }
            System.out.print("もう一度? Yesならば1、Noならばそれ以外の数を入力して下さい : ");
            if(sc.nextInt() != 1) {
                break;
            }
        }
    }
}

ポイント

別解も1つ用意してみました。
これはwhile文を使用しています。
これもよくあるパターンなので覚えておくといいでしょう。
while文の条件判定を「true」にします。
このままでは無限ループが発生してしまうのですが、if文の中にbreak文を記述しておきます。
すると、繰り返し条件判定を書くことができます。
人によると思いますが、こちらの方が読みやすいかもしれません。

まとめ

好きなだけ繰り返せるプログラムにはwhile文を使う。
入力された値の判定がwhile文の条件判定になる。
判定は二種類。
while文の条件判定に書く
while文の条件を「true」にして、中にif文でbreak文を設けておく。

  • このエントリーをはてなブックマークに追加

PAGE TOP