Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/360.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_Syntax_Compilation_Compiler Errors - Fatal编程技术网

Java:返回语句编译错误

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

我已经用Java编写了以下代码,但是出现了一个错误,称为“线程中的异常”main“Java.lang.error:未解决的编译问题:”

发生错误:

线程“main”java.lang中出现异常。错误:未解决的编译问题: 此方法必须返回int类型的结果


这可能是因为您的方法应该返回一个整数值,但仅使用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.");

应该抛出,以指示断言已失败,包括在满足不可能的条件时。在不可能的情况下,如果
if
true
,它也会终止该方法,这符合编译器的要求。

Java编译器发现,如果这三个条件都不满足(尽管这是不可能的),就不会有
return
语句。一种可能的修复方法是在
if
s下面添加以下行:

throw new AssertionError("Impossible to reach.");

应该抛出,以指示断言已失败,包括在满足不可能的条件时。如果
if
true
,它也会在不可能的情况下终止该方法,这会使编译器满意。

您得到错误,因为您的方法返回一个“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。有关详细信息,请参阅我的答案。