Java给出错误:无法比拟的类型:boolean和int"即使两个方法都是布尔值?

时间:2016-10-17 09:04:09

标签: java compare palindrome

我尝试编码的是用户输入数字n,程序输出从1到n的所有数字,这些数字都是素数和回文数。 我创建了一种查找素数的方法,另一种用于查找数字是否为回文。我输出整数的代码就像

if ((prime(y)==true) && (pal(y)==n)) {
            System.out.println(y);
        }

以下是我查找素数的方法:

public static boolean prime(int n) {
    int x = 2;
    while (n%x>0) {
        x+=1;
    } if (x==n) {
        return true;
    } else {
        return false;
    }
}

这是我查找回文编号的方法:

public static boolean pal(int n) {
    int rev = 0;
    int rmd = 0;
    while (n>0) {
        rmd = n%10;
        rev = rev*10 + rmd;
        n = n/10;
    } if (rev==n) {
        return true;
    } else {
        return false;
    }
}

我得到的错误是这两个方法无法比较,因为显然一个是布尔值而另一个是整数。任何人都知道如何解决这个问题?

1 个答案:

答案 0 :(得分:3)

你的陈述是pal(y)==n,但pal(y)返回一个布尔值。我不确定将它与n进行比较应该做什么。

一般情况下,请避免使用foo == true等语句。如果它已经是布尔值,只需使用foo或假!foo