问题描述
嗨,我刚接触Java。 我已经完成了这个程序。但是由于某种原因,它不会从总和中减去负数。它只会添加它们。 这是代码:
import java.util.Scanner;
public class DoubleInput {
public static void main(String[] args) {
Scanner scanner = new Scanner(system.in);
double count = 0;
double sum = 0;
while (true) {
System.out.println("Give a number: ");
int number = Integer.valueOf(scanner.nextLine());
if (number == 0) {break;}
if (number > 0) {count = count + 1;}
if (number < 0) {count = count + 1;}
if (number < 0) {sum = sum - number;}
if (number > 0) {sum = sum + number;}
if (number > 0 && number < 0) {continue;}
}
System.out.println("The total count is: " + count);
System.out.println("The sum of the count is: " + sum);
解决方法
问题在于,如果您传递一个像-1
这样的负数,则会得到sum = sum - (-1)
,它变成sum = sum + 1
。
您只需要更改:
if (number < 0) {sum = sum - number;}
收件人:
if (number < 0) {sum = sum + number;}
您还可以像这样缩短if-else条件:
if (number == 0) {
break;
} else {
count++;
sum += number;
}