Java:返回语句编译错误
我已经用Java编写了以下代码,但是出现了一个错误,称为“线程中的异常”main“Java.lang.error:未解决的编译问题:” 发生错误: 线程“main”java.lang中出现异常。错误:未解决的编译问题: 此方法必须返回int类型的结果Java:返回语句编译错误,java,if-statement,syntax,compilation,compiler-errors,Java,If Statement,Syntax,Compilation,Compiler Errors,我已经用Java编写了以下代码,但是出现了一个错误,称为“线程中的异常”main“Java.lang.error:未解决的编译问题:” 发生错误: 线程“main”java.lang中出现异常。错误:未解决的编译问题: 此方法必须返回int类型的结果 这可能是因为您的方法应该返回一个整数值,但仅使用if语句并不能保证返回一个整数。因此,使用以下方法可以解决问题: public static int guessNum (int num){ if (num == 0){ th
这可能是因为您的方法应该返回一个整数值,但仅使用if语句并不能保证返回一个整数。因此,使用以下方法可以解决问题:
public static int guessNum (int num){
if (num == 0){
throw new IllegalArgumentException();
} else if (num > 0){
return 1;
} else {
return 0;
}
}
这可能是因为您的方法应该返回一个整数值,但仅使用if语句并不能保证返回一个整数。因此,使用以下方法可以解决问题:
public static int guessNum (int num){
if (num == 0){
throw new IllegalArgumentException();
} else if (num > 0){
return 1;
} else {
return 0;
}
}
Java编译器发现,如果这三个条件都不满足(尽管这是不可能的),那么就没有
return
语句。一种可能的修复方法是在if
s下面添加以下行:
throw new AssertionError("Impossible to reach.");
应该抛出,以指示断言已失败,包括在满足不可能的条件时。在不可能的情况下,如果
iftrue,它也会终止该方法,这符合编译器的要求。Java编译器发现,如果这三个条件都不满足(尽管这是不可能的),就不会有return
语句。一种可能的修复方法是在if
s下面添加以下行:
throw new AssertionError("Impossible to reach.");
应该抛出,以指示断言已失败,包括在满足不可能的条件时。如果iftrue
,它也会在不可能的情况下终止该方法,这会使编译器满意。您得到错误,因为您的方法返回一个“int”。
所有返回语句都包含在“if”条件中。编译器会抱怨您的任何条件都不可能得到满足(即使它们是-您正在检查所有情况)
您需要提供一个默认的返回语句。事实上,最后一个if是不必要的,因为如果num是!=0且不大于0,则必须小于0
将方法更改为:
public static int guessNum (int num){
if (num == 0){
throw new IllegalArgumentException();
}
if (num > 0){
return 1;
}
return 0; //The other conditions were not met so this must be the result
}
您得到错误是因为您的方法返回一个“int”。
所有返回语句都包含在“if”条件中。编译器会抱怨您的任何条件都不可能得到满足(即使它们是-您正在检查所有情况)
您需要提供一个默认的返回语句。事实上,最后一个if是不必要的,因为如果num是!=0且不大于0,则必须小于0
将方法更改为:
public static int guessNum (int num){
if (num == 0){
throw new IllegalArgumentException();
}
if (num > 0){
return 1;
}
return 0; //The other conditions were not met so this must be the result
}
告诉我们确切的错误。最后一个if是不必要的,还有一个else。有关详细信息,请参阅我的答案。向我们显示确切的错误。最后一个if是不必要的,还有一个else。有关详细信息,请参阅我的答案。