java方法返回false,但预期为true

4uqofj5v  于 2021-07-06  发布在  Java
关注(0)|答案(2)|浏览(374)

**结案。**此问题不可复制或由打字错误引起。它目前不接受答案。
**想改进这个问题吗?**更新问题,使其成为堆栈溢出的主题。

上个月关门了。
改进这个问题
下面的代码用于反转3位数字,然后在它们相等时进行检查。主要方法

public class Main {
    public static void main(String[] args) {
       boolean result= NumberPalindrome.isPalindrome(121);
        System.out.println(result);

    }
}

倒号方法

public class NumberPalindrome {
    public static boolean isPalindrome(int number){
        int reserve=100;
        int reverseNumber=0;
        while (number>0){
            int lastDigit=(number%10);
            reverseNumber+=(lastDigit*reserve);
            reserve/=10;
            number/=10;
        }
        System.out.println("reverse number"+reverseNumber);
        if (reverseNumber==number){
            return true;
        }else {
            return false;
        }
    }
}

我在while循环结束后给出了一个print语句,print给出了正确的期望值,但是if语句给出了false,即使它必须是true。

0sgqnhkj

0sgqnhkj1#

public static boolean isPalindrome(int input) {
    int reserve = 100;
    int reverseNumber = 0;
    int number = input;

    while (number > 0) {
        int lastDigit = (number % 10);
        reverseNumber += (lastDigit * reserve);
        reserve /= 10;
        number /= 10;
    }

    System.out.println("reverse number" + reverseNumber);
    System.out.println("original number" + input);
    return reverseNumber == input;
}

因为你修改了你的输入参数 numbernumber /= 10

ecfdbz9o

ecfdbz9o2#

你在改变 number 之前 if ,只需将它赋给另一个值,然后检查它。

public class NumberPalindrome {
    public static boolean isPalindrome(int number){
            int my_num = number;
            .
            .
            .
            if (reverseNumber==my_num){
                      ...
number/=10;  //this is where number is changing

相关问题