在Java中,第二次打印输出不同于其他输出,基于循环

在Java中,第二次打印输出不同于其他输出,基于循环,java,loops,system.out,Java,Loops,System.out,我正在尝试编写一个程序,它要求用户输入整数,并一直输入它们,直到用户输入Q。每次输入后,程序应提示字符串:“输入整数,或Q退出:” 在我的终端上,每秒out.print仅提示用户输入,而不是提示字符串请求输入。例如,输出如下所示: 输入一个整数,或输入Q退出:90 八十 输入一个整数,或输入Q退出:100 输入一个整数,或输入Q退出:25 输入一个整数,或输入Q退出:7 输入一个整数,或输入Q退出:Q 我的代码如下 Scanner in = new Scanner(System.in);

我正在尝试编写一个程序,它要求用户输入整数,并一直输入它们,直到用户输入Q。每次输入后,程序应提示字符串:“输入整数,或Q退出:”

在我的终端上,每秒out.print仅提示用户输入,而不是提示字符串请求输入。例如,输出如下所示:

输入一个整数,或输入Q退出:90
八十
输入一个整数,或输入Q退出:100
输入一个整数,或输入Q退出:25
输入一个整数,或输入Q退出:7
输入一个整数,或输入Q退出:Q

我的代码如下

    Scanner in = new Scanner(System.in);

    System.out.print("Enter an integer, or Q to quit: ");

    int largest = in.nextInt();

    if (in.hasNextInt())
    {

        while (in.hasNextInt())
            {


                int input = in.nextInt();
                if(input > largest)
                {
                    largest = input;
                }

                System.out.print("Enter an integer, or Q to quit: ");

            }
    }


    System.out.println(largest);

我的第一个猜测是某些语句的顺序,但我没有任何运气。有什么建议吗?

问题是您正在等待两个号码。。。将其更改为如下所示:

        Scanner in = new Scanner(System.in);

        System.out.print("Enter an integer, or Q to quit: ");
        int largest = Integer.MIN_VALUE;

        while (in.hasNextInt())
        {           
            int input = in.nextInt();
            if (input > largest)
            {
                largest = input;
            }

            System.out.print("Enter an integer, or Q to quit: ");

        }

        System.out.println(largest);

以前版本的代码的问题是最初需要两个数字,其中一个是最大值。

问题是您正在等待两个数字。。。将其更改为如下所示:

        Scanner in = new Scanner(System.in);

        System.out.print("Enter an integer, or Q to quit: ");
        int largest = Integer.MIN_VALUE;

        while (in.hasNextInt())
        {           
            int input = in.nextInt();
            if (input > largest)
            {
                largest = input;
            }

            System.out.print("Enter an integer, or Q to quit: ");

        }

        System.out.println(largest);

您以前版本的代码的问题是,最初需要两个数字,其中一个是最大值。

我发现了我的错误。谢谢你我明白我的错误了。谢谢你+1