要求用户输入数字,然后计算它们并找到平均值

时间:2015-12-07 16:52:43

标签: 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;
        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);   
    }
}

1 个答案:

答案 0 :(得分:0)

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

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

正如其他人评论的那样,您需要考虑“除以零”等情况,并处理输入验证。