我在使用Java的代码网站中练习时遇到的一个小问题

时间:2018-09-15 11:34:06

标签: java

当我使用int a = x,最后返回true时,而当我不使用int a = x时,然后return false,请告诉我为什么这么做

添加int a = x 源代码是这样的:

public class solution009 {
public boolean isPalindrome(int x) {
    int res = 0;
    int a = x;
    if (x < 0 || x > 0 && x % 10 == 0)
        return false;


    while(x > 0){
        res = res * 10 + x % 10;
        x /= 10;
    }

    return res == a;

}

public static void main(String[] args) {
    solution009 s9 = new solution009();
    System.out.println(s9.isPalindrome(121));
}

}

输出为true,当我删除“ int a = x”时,输出为fasle

1 个答案:

答案 0 :(得分:0)

以下代码段创建了一个新变量res,该变量是由x从右向左构造的(321 => 123):

int res = 0;
while(x > 0){
    res = res * 10 + x % 10;
    x /= 10;
}

最后,如果x,则res == x是回文。

您的条件res == a仅在a等于x时有效。而且,当然,如果仅删除行int a,则代码甚至都不会编译...