首页 > 解决方案 > 我的 Java 代码有一些问题。在循环中告诉正数和负数之间的差异时它不会运行

问题描述

要解决的问题

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

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

标签: javaloopsdebuggingif-statement

解决方案


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

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

推荐阅读