有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java If语句即使在满足条件后也不工作

这是一个解决问题的办法,找到偶数位数的总和。 主要

public class Main {
    public static void main(String[] args) {
        int mySum=EvenDigitSum.getEvenDigitSum(879);
        System.out.println(mySum);
    }
}

以上为主要方法

Even DigitSum
public class EvenDigitSum {
    public static int getEvenDigitSum(int number){
       int sum=0;
        if (number<0){
            return -1;
        }else {
            while (number>0){
                int lastDigit=(number%10);
                System.out.println("last digit"+lastDigit);
                if (lastDigit%2==0){
                    sum=(sum+lastDigit);
                    System.out.println("my sum"+sum);
                }
                number/=10;
            }
            return sum;
        }
    }
}

这里有两个print语句,一个在while循环中,另一个在if语句中。while循环中的一个给出正确的输出,但if语句中的一个从未给出正确的输出。 在主方法中,我的编号是879,其中8表示8 if语句应该可以工作,但它不工作。我最后的偶数总和是0

使用了错误/而不是%


共 (1) 个答案

  1. # 1 楼答案

    在这方面:

    if (lastDigit / 2 == 0)
    

    您正在检查最后一个数字的一半是否为0。当然,只有当数字为0或1时才会发生这种情况。相反,请使用% 2获取剩余部分:

    if (lastDigit % 2 == 0)