如何在Java中返回布尔值?

时间:2013-04-05 15:57:00

标签: java if-statement boolean

public boolean isOdd (int value) {
    if ((value % 2)== 0){ 
        return false; 
    } else if ((value % 2) > 0){ 
        return true; 
    }
} 

我收到一条错误消息: private boolean isOdd(int value)throws Exception {                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 此方法必须返回boolean类型的结果

我尝试过:

public boolean isOdd (int value) {
    boolean isOdd =  ((value % 2) > 0);
    return true; 
} 

public boolean isEven (int value) {
    boolean isEven = ((value % 2) > 0);
    return true;
} 

并且它只返回true作为输出。

我不知道我在这里做错了什么!

8 个答案:

答案 0 :(得分:8)

您的第一个代码段导致错误,因为您没有满足else案例。您不需要else if,因为您希望在不满足if语句的所有情况下执行第二个条件。尝试将其更改为:

public boolean isOdd (int value) {

    if ((value % 2)== 0){ 
        return false; 
    } 
    else { return true; }

} 

或更简单:

public boolean isOdd (int value) {
    return ((value % 2) != 0);
}

答案 1 :(得分:5)

你需要在第一个片段中添加一个默认的返回值,即一个不在任何if片段内的片段。

答案 2 :(得分:2)

只做

public boolean isOdd(int value) {
    return (value % 2) != 0;
}

答案 3 :(得分:2)

你需要一个别人或至少另一个回报。如果你的if语句都不匹配,那么将不会返回任何内容,这是不允许的。

public boolean isOdd (int value) {

if ((value % 2)== 0){ 
return false; } 

else if ((value % 2) > 0){ 
return true; }

return true;

}

您可以使用以下方法替换该方法:

public boolean isOdd (int value) {
return (value % 2) != 0; }

答案 4 :(得分:2)

如果添加else语句,即

,编译错误就会消失
if ((value % 2)== 0) { 
    return false;
} else if ((value % 2) > 0){ 
   return true;
} else {
   return ??; // default value
}

答案 5 :(得分:1)

如果((value % 2) < 0)怎么办?你不是在考虑这种可能性,如果发生这种情况就没有回头路。

答案 6 :(得分:0)

public boolean isEven (int value) {
  return value%2==0;
} 

public boolean isOdd (int value) {
  return value%2!=0;
} 

答案 7 :(得分:0)

你也可以这样做:

public boolean isOdd (int value) {
    if ((value % 2) == 0)
        return false; 
    return true; 
}