繁体   English   中英

输入 4 个正数或负数,然后仅使用 if else 将所有负数相加

[英]Input 4 number either positive or negative then add all the negative numbers using if else only

如何找到忽略正数的所有负数的总和?

import java.util.Scanner;

class Main {

    public static void main(String args[]) {

        Scanner input = new Scanner(System.in);

        float ans;

        float num = input.nextFloat();
        float num2 = input.nextFloat();
        float num3 = input.nextFloat();
        float num4 = input.nextFloat();

        if (num < 0 || num2 < 0 || num3 < 0 || num4 < 0){
            ans = num + num2 + num3 + num4;
            System.out.printf("%.2f", ans);
        }
    }
}

输入: -30.22、10.5、-2.2、-1.8

预期输出: -34.22

您正在使用多个条件 with or 操作。 在这种情况下,即使一个数字是负数,或者满足您的条件,也会将所有数字相加。

if (num < 0 || num2 < 0 || num3 < 0 || num4 < 0){ ... }

要仅添加负数,请一一检查每个数字并执行求和。

float ans = 0;

if (num < 0) {
   ans = ans + num;
}

if (num2 < 0) {
   ans = ans + num2;
}

...

System.out.println(ans);

解决方案:

import java.util.Scanner;

class Sum {

    public static void main(String args[]) {

        Scanner sc = new Scanner(System.in);

        float ans=0.0F;

        float num = sc.nextFloat();
        float num2 = sc.nextFloat();
        float num3 = sc.nextFloat();
        float num4 = sc.nextFloat();

        if (num < 0  )
            ans = ans+num;

               if (num2 < 0  )
               ans = ans+num2;

                 if (num3 < 0  )
                 ans = ans+num3;

                    if (num4 < 0  )
                    ans = ans+num4;

            System.out.println("Sum of negative numbers = "+ans);
        
    }
}

您可以使用 for 循环编写更简单的代码:

Scanner input = new Scanner(System.in);

float answer = 0;
for(int i = 0; i < 4; i++) {
    float number = input.nextFloat();
    if(number < 0) {
        answer += number;
    }
}

System.out.printf("%.2f", answer);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM