#java #random
#java #Случайный
Вопрос:
Эта программа должна случайным образом выбирать ответ всякий раз, когда ответ правильный. и снова задаст тот же вопрос, если ответ неправильный.
Мой код выглядит примерно так.
Scanner reader = new Scanner(System.in);
int response = 0;
int answer = 0;
while (true) {
int num1 = (int) (Math.random() * 10 1);
int num2 = (int) (Math.random() * 10 1);
if (num1 < num2) {
int temp = num1;
num1 = num2;
num2 = temp;
}
System.out.println("What is " num1 " times " num2 "?");
answer = reader.nextInt();
switch(response) {
case 0:
if (answer != (num1 * num2)) {
System.out.println("No. Please try again.");
System.out.println("What is " num1 " times " num2 "?");
answer = reader.nextInt();
}
if (answer == (num1 * num2)) {
System.out.println("Very good.");
}
case 1:
if (answer != (num1 * num2)) {
System.out.println("No. Please try again.");
System.out.println("What is " num1 " times " num2 "?");
answer = reader.nextInt();
}
if (answer == (num1 * num2)) {
System.out.println("Very good.");
}
и задача заключалась в том, чтобы «Использовать генерацию случайных чисел для выбора числа от 1 до 4, которое будет использоваться для выбора одного из четырех подходящих ответов на каждый правильный или неправильный ответ. Используйте оператор switch для выдачи ответов.»
Проблема в коде, который я пробовал, заключается в том, что он не случайным образом выбирает ответ на мой оператор switch case, есть идеи?
Ответ №1:
Вы не присваиваете случайное число response
, вы просто инициализируете его 0
. Вместо этого вам нужно присвоить ему случайное число:
Random r = new Random();
int response = r.nextInt(4) 1;
Комментарии:
1. Почему в нем говорится, что метод random() в типе math неприменим для аргументов (int)?
2. @JiggyPalconit извините, запутался в собственной голове. Отредактировано и исправлено.
3. Я пробовал, но почему я не получаю ответ после того, как ввел правильный ответ? должен ли я что-то изменить в своем операторе if else?