Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 程序无法识别解决方案_Java - Fatal编程技术网

Java 程序无法识别解决方案

Java 程序无法识别解决方案,java,Java,我试图制作一个简单的java应用程序,在屏幕上输出两个数字,用户必须输入这两个数字的总和。当我输入总和时,如果正确,程序会询问我是否要继续。如果我说是,程序会输出两个新数字,当我输入正确答案时,程序不会识别出答案是正确的 如果我在程序开始时输入了错误的答案,我希望程序一次又一次地向用户询问解决方案,直到他输入正确的答案,但我不知道怎么做。这是我的密码: import java.util.Scanner; import java.security.SecureRandom; public cla

我试图制作一个简单的java应用程序,在屏幕上输出两个数字,用户必须输入这两个数字的总和。当我输入总和时,如果正确,程序会询问我是否要继续。如果我说是,程序会输出两个新数字,当我输入正确答案时,程序不会识别出答案是正确的

如果我在程序开始时输入了错误的答案,我希望程序一次又一次地向用户询问解决方案,直到他输入正确的答案,但我不知道怎么做。这是我的密码:

import java.util.Scanner;
import java.security.SecureRandom;

public class HelloWorld {
    public static void main(String[] args) {

        Scanner input = new Scanner(System.in);
        int result = getRandomNumbers();

        int counter = 1;
        char again;

        while (counter == 1) {

            int userResult = input.nextInt();
            if (result == userResult) {
                System.out.println("You are right");
            } else {
                System.out.println("You are wrong, try again");
            }

            System.out.println("Do you want to try again? Enter y for yes or n for no");
            again = input.next().charAt(0);

            if (again == 'y') getRandomNumbers();
            else counter++;
        }

    }

    public static int getRandomNumbers() {
        SecureRandom randomNumbers = new SecureRandom();

        int fnum = 1 + randomNumbers.nextInt(9);
        int snum = 1 + randomNumbers.nextInt(9);

        System.out.println("What is " + fnum + " times " + snum);
        return fnum * snum;
    }

}
如果输入不是预期的,可以使用while循环向用户请求新输入

试试这个:

public static void main(String[] args) {

    Scanner input = new Scanner(System.in);

    while (true) {
        int result = getRandomNumbers();
        int userResult = input.nextInt();
        while ( result != userResult) {
            System.out.println("You are wrong, try again");
            result = getRandomNumbers();
            userResult = input.nextInt();
        }
        System.out.println("You are right");

        System.out.println("Do you want to try again? Enter y for yes or n for no");

        if (input.next().charAt(0) == 'n') {
            break;
        }
    }

只有当用户说他不想继续时,它才会中断while-true循环。

首先,请正确格式化代码,这样人类也可以看到程序结构。在你这么做之前,我个人不会看代码,但你可能会和其他人一起走运。或者不是。