要解决的问题


编写一个名为MyWhiley1的程序,要求用户键入一个
正整数。
当用户键入一个负值时,程序将写入ERROR和
要求另一个值。
当用户键入0时,表示已键入最后一个值
并且程序必须写出正整数的平均值。
如果键入的值的数量为零,则程序将写入'NO
平均'。


但是我有一些错误,如果我输入一个正数然后输入一个负数,我的代码将无法正常运行。

public class MyWhiley1 {
    public static void main(String[] arg) {
        int sum = 0, list = 0;
        Scanner reader = new Scanner(System.in);
        System.out.println("Type a postive integer if you enter zero the list is compelete");
        int number = reader.nextInt();
        do {
            if (number > 0) {
                sum += number;
                list++;
            } else if (number < 0) {
                System.out.println("ERROR type in a postive integer");

            }
            reader.close();
        } while (number != 0);

        if (list != 0) {
            System.out.println("Average is: " + sum / list);
        } else
            System.out.println("NO average");
    }
}

最佳答案

您有两个问题,没有在循环中读取数字,而是在循环中关闭阅读器:

int number = 0;

do
{
    number = reader.nextInt();

    if (number>0)
    {
        sum+=number;
        list++;
    }
    else if (number<0)
    {
        System.out.println("ERROR type in a postive integer");

    }

}while (number!=0);
reader.close();

关于java - 我的Java代码有些麻烦。在循环中告诉正数和负数之间的差异时,它将不会运行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55252282/

10-09 04:52