Случайным образом выбрать ответ java

#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?