我需要编写一个代码,用户输入数字并添加它们,显示正数,负数,零数以及用户输入字母“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);
}
}
答案 0 :(得分:0)
您在“if”条件下缺少打印件。修改if条件如下
if("e".equals(entered)){
//print stuff
System.out.print(negative + positive + zeroes + sum + (count - 1) + average);
break;
}
正如其他人评论的那样,您需要考虑“除以零”等情况,并处理输入验证。