繁体   English   中英

如何在Java中返回布尔值?

[英]How do I return boolean in Java?

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作为输出。

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

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

public boolean isOdd (int value) {

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

} 

或更简单地说:

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

您需要在第一个片段中添加默认返回值,也就是不在任何if内部的片段。

做就是了

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

你需要一个别的或至少另一个回报。 如果你的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; }

如果添加了else语句,即编译错误就会消失

if ((value % 2)== 0) { 
    return false;
} else if ((value % 2) > 0){ 
   return true;
} else {
   return ??; // default value
}

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

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

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

你也可以这样做:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM