在Java中如何返回布尔值?
我得到一个错误,说: 私有布尔值isOdd(int值)引发异常{ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 此方法必须返回布尔类型的结果 我试着做:在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; } } 它只作为输出返回
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;
}