Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java中如何返回布尔值?_Java_If Statement_Boolean - Fatal编程技术网

在Java中如何返回布尔值?

在Java中如何返回布尔值?,java,if-statement,boolean,Java,If Statement,Boolean,我得到一个错误,说: 私有布尔值isOdd(int值)引发异常{ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 此方法必须返回布尔类型的结果 我试着做: public boolean isOdd (int value) { if ((value % 2)== 0){ return false; } else if ((value % 2) > 0){ return true; } } 它只作为输出返回

我得到一个错误,说: 私有布尔值isOdd(int值)引发异常{ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 此方法必须返回布尔类型的结果

我试着做:

public boolean isOdd (int value) {
    if ((value % 2)== 0){ 
        return false; 
    } else if ((value % 2) > 0){ 
        return true; 
    }
} 
它只作为输出返回true


我不知道我做错了什么!

您需要在第一个代码段中添加一个默认返回值,即不在任何if中的返回值。

如果
((值%2)<0)
?您没有考虑到这种可能性,如果发生这种情况,则没有返回路径。

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

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

public boolean isEven (int value) {
    boolean isEven = ((value % 2) > 0);
    return true;
} 
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; 
    } 
    else { return true; }

} 
照办

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

您需要一个else或至少另一个返回。如果两个If语句都不匹配,则不会返回任何内容,这是不允许的

public boolean isOdd(int value) {
    return (value % 2) != 0;
}
您可以使用以下方法替换该方法:

public boolean isOdd (int value) {

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

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

return true;

}

如果添加
else
语句,编译错误将消失,即

public boolean isOdd (int value) {
return (value % 2) != 0; }
您还可以执行以下操作:

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

这是因为您没有
else
子句。可能的重复我不知道如何做,但我还是解决了问题,感谢您的回答!请查看随机的答案,以了解如何设置默认值。这对您理解非常重要,因为所有Java方法(除了
void
方法)必须返回默认值。更一般地说,应该首先将错误消息视为方法逻辑中存在问题的指示。有一种方法可以达到程序员不期望的方法结尾。查找和修复该问题(如本答案所示)通常会导致比反射性添加更简单、更清晰的代码我知道第二个比第一个简单得多,但它应该是什么?并且((值%2)!=0)如何确定返回真还是假?
应该读为“not”。因此
(值%2)!=0
应该读为“值mod 2不等于零,”该语句要么是真的,要么是假的,因此它本身就是一个
布尔值。
-true
FileNotFound
public boolean isOdd (int value) {
    if ((value % 2) == 0)
        return false; 
    return true; 
}