■作成するプログラムの仕様
▼概要
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
※赤字は入力した数字を示す。