今回はwhile文のサンプルです。
課題形式で作ってみましょう。
では、
■入力された数が奇数か偶数か判定するプログラムを作成せよ。
ただし、望む限り何回でも入力・判定が繰り返せるようにしなさい。
判定までは簡単かと思います。
■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文を設けておく。