没有获得所需的print语句输出

时间:2018-06-11 12:13:40

标签: java

在第二个输入“输入分数。-1退出:”缺失,当程序结束时出现。如何解决? 另外,如果有更好的方法来编写这个程序。

import java.util.Scanner;
public class l
{
    public static void main(String[] args)
    {
        Scanner in = new Scanner(System.in);
        int avgScore = 0;
        int entry = 0;
        int totalScore = 0;
        do
        {
            System.out.print("Enter a score. -1 to quit: ");
            int score= in.nextInt();
            if(score == -1)
            {
                break;
            }
            else
            {
                totalScore +=score;
                entry++;
            }
        }
        while (in.hasNextInt());

    }
}

3 个答案:

答案 0 :(得分:1)

您的程序打印出消息"输入分数...",然后等待并接受整数输入,这很好。

但是,在循环的第二次迭代开始之前,您的循环条件会检查用户是否在第二次打印消息之前已经另一个整数输入,这就是为什么你的循环的第二次迭代可能只在你给程序一些输入之后才开始。

希望这有帮助!

答案 1 :(得分:0)

除了检查in.hasNextInt()和do-while-loop之外,您可以使用一个简单的for循环而不会出现中断条件(或while(true) - 循环),只需调用{{1} }:

in.nextInt()

答案 2 :(得分:-2)

while(true){
 System.out.print("Enter a score. -1 to quit: ");
            int score= in.nextInt();
            if(score == -1)
            {
                break;
            }
 totalScore +=score;
                entry++;
 if(entry ==0)
        {
            System.out.println("average score: "+ totalScore);
        }
        else
        System.out.println("average score: "+ totalScore/entry);
    }
}