之后,它应该显示计数和所输入数字的总和由于某种原因,它添加了负数 0至结束

问题描述

嗨,我刚接触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;
}