【Java】Do While文:0から9までの数字当てゲーム

■作成するプログラムの仕様

▼概要
0から9までの数字のうち、ランダムに生成した数字を当てる。

▼仕様
①0から9までの乱数をセット
②繰り返し処理(※入力した数字と①の乱数が一致するまで)
 ②-1.0から9までの数値を入力してもらう
 ②-2-1.入力値>乱数の場合は「答えは入力値より小さい」と表示
 ②-2-2.入力値<乱数の場合は「答えは入力値より大きい」と表示
③「正解と表示」

(※)入力した数字と①の乱数が一致しない間、処理を繰り返す

▼フローチャート

■サンプルコード

import java.util.Scanner;

public class Sample{
	
	public static void main(String[] args) {
		
		Scanner scan = new Scanner(System.in);
		
		// 乱数と入力値用の変数宣言
		int ans_num, input_num;
		
		// 乱数で0から9までの数値を入れる
		ans_num = (int)(Math.random() * 10);
		
		do{
			// 入力値をセットする
			System.out.print("0から9の数値を入力してください:");
			input_num = scan.nextInt();
			
			// 入力値>乱数
			if(input_num > ans_num) {
				System.out.println("答えは" + input_num + "より小さい値です");
			// 入力値<乱数
			}else if(input_num < ans_num) {
				System.out.println("答えは" + input_num + "より大きい値です");
			}
			
		// 入力した数字と乱数が一致しない間、処理を繰り返す
		}while(input_num != ans_num);
		
		System.out.println("正解です!!答:" + ans_num);
		
		// クローズ処理
		scan.close();
		
	}

}

▼補足説明:Math.random() について

Math.random()の値は、0.0以上1.0未満の乱数(double型)を設定するため、
0から9の乱数を取得する場合は、Math.random()に10をかけてint型にキャストする。

▼ Math.random()をそのまま実行

double num = Math.random();
	
System.out.println(num);

>>3回実行
0.38859303129100264
0.009373373966995113
0.2800585487714562

▼ Math.random()に10をかけて、int型にキャスト

int num = (int)(Math.random() * 10);
		
System.out.println(num);

>>3回実行
2
5
9

▼キャストについての参照先

■実行結果

0から9の数値を入力してください:0
答えは0より大きい値です
0から9の数値を入力してください:4
答えは4より大きい値です
0から9の数値を入力してください:9
答えは9より小さい値です
0から9の数値を入力してください:6
正解です!!答:6

赤字は入力した数字を示す。

タイトルとURLをコピーしました