首页 > 解决方案 > 方法返回 False 但预期为 true

问题描述

以下代码用于反转 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,即使它必须为真。

标签: javareturn

解决方案


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 

推荐阅读