Javaで数字当てゲームを作る演習|while・if・breakを組み合わせよう|確認問題の回答例

このページは、Javaで数字当てゲームを作る演習|while・if・breakを組み合わせようの確認問題を見直すためのページです。先に自分で考えてから、回答例と見比べてください。
第1問:回答例
ファイル名: NumberGuessMessage.java
import java.util.Scanner;
public class NumberGuessMessage {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int answer = (int) (Math.random() * 10) + 1;
while (true) {
System.out.print("数字を入力してください:");
int input = scanner.nextInt();
if (input == answer) {
System.out.println("正解です!");
break;
}
System.out.println("違います!");
}
}
}
正解メッセージを表示したあとに break すると、while文を抜けられます。正解したときだけ終了する流れです。
第2問:回答例
ファイル名: NumberGuessRange.java
import java.util.Scanner;
public class NumberGuessRange {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int answer = (int) (Math.random() * 10) + 1;
while (true) {
System.out.print("数字を入力してください:");
int input = scanner.nextInt();
if (input < 1 || input > 10) {
System.out.println("1〜10の数字を入力してください。");
continue;
}
if (input == answer) {
System.out.println("正解です!");
break;
}
System.out.println("違います!");
}
}
}
範囲外の入力は正解判定に進めず、continue で次の入力へ進みます。条件式は「1未満 または 10より大きい」と読みます。
第3問:回答例
ファイル名: NumberGuessCount.java
import java.util.Scanner;
public class NumberGuessCount {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int answer = (int) (Math.random() * 10) + 1;
int times = 0;
while (true) {
System.out.print("数字を入力してください:");
int input = scanner.nextInt();
times++;
if (input == answer) {
System.out.println(times + "回で正解です!");
break;
}
System.out.println("違います!");
}
}
}
入力を受け取るたびに times を1増やすと、正解までの入力回数を数えられます。回数を数える変数は、while文の前で用意します。