java - 我的 Java 代码遇到一些问题。在循环中区分正数和负数时不会运行

标签 java loops debugging if-statement

需要解决的问题

  • 编写一个名为 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/

相关文章:

java - Spring:让 ServeltDispatcher 上下文等待直到另一个上下文完成加载

java - Spring 集成注释 Java 8 可选的不正确处理

javascript - setValues 不迭代数组

java - 如何让我的 ArrayList 添加 52 个唯一的对象而不是全部相同?

python - 列表索引超出范围 - Python 索引错误

.net - .NET PDB文件的格式(模式)是什么?

java - ContiPerf html 报告

windows - 跟踪在 VB.net 应用程序中调用的外部 .EXE 的参数

java - IntelliJ IDEA 不会进入第三方 jar 中的方法

java - Zhang-Suen 细化算法实现未按预期工作