Java 要求用户输入数字,然后计数并找出平均值

Java 要求用户输入数字,然后计数并找出平均值,java,if-statement,sum,average,counting,Java,If Statement,Sum,Average,Counting,我需要编写一个代码,接收用户输入的数字并将其相加,显示正、负、零的数量,以及用户输入字母“e”后输入的数字数量的计数 但当我输入“e”时,程序终止而不打印计数或平均值 而且,平均数不起作用,因为它说我不能除以零 public static void main (String[] args){ Scanner input = new Scanner(System.in); int negative = 0; int positive = 0;

我需要编写一个代码,接收用户输入的数字并将其相加,显示正、负、零的数量,以及用户输入字母“e”后输入的数字数量的计数

但当我输入“e”时,程序终止而不打印计数或平均值

而且,平均数不起作用,因为它说我不能除以零

    public static void main (String[] args){
        Scanner input = new Scanner(System.in);
        int negative = 0;
        int positive = 0;
        int zeroes = 0;
        int sum = 0;
        int count = 1;
        int average = sum / (count - 1);

         do{
                System.out.print("Enter a float or 'e' to exit");
                String entered = input.nextLine();
                if("e".equals(entered)){
                    //print stuff
                    break;
                }else{
                    int num;
                    try {
                        num = Integer.parseInt(entered);
                    } catch (NumberFormatException e) {
                        System.out.print(negative + positive + 
                    zeroes + sum + (count - 1) + average);
                        continue; // re-do the loop
                    }
                    if(num  < 0){ 
                        sum += num;
                        count++;
                        negative++;
                    }else if (num > 0){ 
                        sum += num;
                        count++;
                        positive++;
                    }else{//similar to comment above
                        sum += num;
                        count++;
                        zeroes++;
                    }

                }
            } while(true);   
    }
}
publicstaticvoidmain(字符串[]args){
扫描仪输入=新扫描仪(System.in);
int负=0;
int正=0;
整数零=0;
整数和=0;
整数计数=1;
整数平均值=总和/(计数-1);
做{
系统输出打印(“输入浮点或“e”退出”);
输入的字符串=input.nextLine();
如果(“e”。等于(输入)){
//印刷品
打破
}否则{
int-num;
试一试{
num=整数.parseInt(输入);
}捕获(数字格式){
系统输出打印(负片+正片+
零+和+(计数-1)+平均值);
continue;//重新执行循环
}
如果(num<0){
sum+=num;
计数++;
负++;
}如果(num>0){
sum+=num;
计数++;
正++;
}else{//与上面的评论类似
sum+=num;
计数++;
零++;
}
}
}虽然(正确);
}
}

您在“如果”条件下缺少打印。修改if条件,如下所示

if("e".equals(entered)){
  //print stuff
   System.out.print(negative + positive + zeroes + sum + (count - 1) + average);
  break;
}

正如其他人所评论的,你需要考虑诸如“除零”之类的情况,也要处理输入验证。

当你尝试计算平均值时,<代码> int=求和/(计1);
,您的
计数
变量是
1
。所以你在这里除以
0
。看起来你的评论:
//print stuff
是正确的,只要把代码打印出来就行了。(并将平均计算移动到@gonzo建议的打印位置)