Почему этот цикл не работает должным образом - PullRequest
0 голосов
/ 27 октября 2018

Я предполагаю написать java-программу, в которой я спрашиваю пользователя, на сколько математических вопросов они хотят ответить, и генерирует случайные вопросы, основываясь на своем ответе, используя любой выбранный цикл, и веду счет того, сколько они ответили правильно. Я получил его для генерации случайной математической задачи, но он делает это только тогда, когда кажется, что пропускает цикл. Кто-нибудь может помочь?

import javax.swing.JOptionPane;
import java.util.Random;
import java.util.Scanner;

/**
 *
 * @author user
 */
public class MathQuiz {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        Random obj = new Random();
        int num1 = obj.nextInt(10);
        int num2 = obj.nextInt(10);
        int rand = num1 + num2;
        String response = JOptionPane.showInputDialog(null,"How many problems would you like to solve?");
        int ans = Integer.parseInt(response); // answer from question
        String result= null;
        int times = input.nextInt();
        int counter = 0; //counts total math problems

        while (counter != ans){
            counter++;
            JOptionPane.showInputDialog(num1 + "+" +num2);
            if (ans == rand){
                result= "Correct";
            }else {
                result= "Incorrect";
            }
        }   JOptionPane.showMessageDialog(null, );

        }
}  

Ответы [ 2 ]

0 голосов
/ 27 октября 2018

Число, которое вы получаете внутри цикла, не должно храниться в той же переменной, что и значение, которое вы используете в условии while (...). В этом случае вы использовали ответ. В приведенном ниже примере у меня есть отдельные переменные для математического ответа и количества повторений в цикле. Другая проблема, с которой вы столкнулись, заключается в том, что вы не передали сообщение с результатом в метод showMessageDialog (..).

import javax.swing.JOptionPane;
import java.util.Random;
import java.util.Scanner;

public class MathQuiz {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        Random obj = new Random();
        String timesString = JOptionPane.showInputDialog(null,"How many problems would you like to solve?");
        int timesInt = Integer.parseInt(timesString); // answer from question
        int counter = 0; //counts total math problems

        while (counter != timesInt) {
            counter++;

            int num1 = obj.nextInt(10);
            int num2 = obj.nextInt(10);
            int rand = num1 + num2;

            String answerString = JOptionPane.showInputDialog(num1 + "+" +num2);
            int answerInt = Integer.parseInt(answerString);

            JOptionPane.showMessageDialog(null, answerInt == rand ? "Correct" : "Incorrect");
        }
    }
}
0 голосов
/ 27 октября 2018

Вот проблемы в вашем коде: Вы не отображаете результат после вычисления значения.Не генерировать случайные числа каждый раз.

    public class MathQuiz {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        String response = JOptionPane.showInputDialog(null,"How many problems would you like to solve?");
        int noOfTimes = Integer.parseInt(response); // answer from question
        String result= null;

        for (int counter = 0; counter < noOfTimes; counter++) {
            Random obj = new Random();
            int num1 = obj.nextInt(10);
            int num2 = obj.nextInt(10);
            int rand = num1 + num2;

            int answer = Integer.parseInt(JOptionPane.showInputDialog(num1 + "+" +num2));
            if (answer == rand){
                result= "Correct";
            }else {
                result= "Incorrect";
            }

            JOptionPane.showMessageDialog(null, result);
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...