Java,第二个打印输出与其余打印输出不同,基于循环

时间:2013-10-18 07:33:42

标签: java loops system.out

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

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

  

输入一个整数,或输入Q以退出:90   
80   
输入一个整数,或输入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);

我的第一个猜测是某些陈述的排序,但我没有运气。有什么建议吗?

1 个答案:

答案 0 :(得分:1)

问题在于您正在等待两个数字......将其更改为:

        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);

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