gpt4 book ai didi

java - Java 返回类型中的错误

转载 作者:行者123 更新时间:2023-11-29 07:12:52 27 4
gpt4 key购买 nike

我有这个代码:

public int Bol(int x, int y){
if(x > y){
return (x / y);
}else if(x < y){
return (y / x);
}
}

抛出这个错误:“这个方法必须返回一个 int 类型的结果”。为什么必须这样做?

我知道当我将 else if 更改为 else 时,这个问题就解决了。但是,为什么在我使用 else-if 时会出现此错误?

最佳答案

当所有条件都不满足时会发生什么(即当 x == y 时)?该方法将返回什么?所以你需要返回一个默认值:

public int Bol(int x, int y){
if(x > y){
return (x / y);
}else if(x < y){
return (y / x);
}

return 0; // or whatever default value you need
}

使用单个 return 也会有帮助:

public int Bol(int x, int y){

int result = 0; //whatever default value you want

if(x > y) {
result = (x / y);
} else if(x < y) {
result = (y / x);
}

return result;
}

"I know that when I change else if to else this problem is solved. But why, when I use else-if, was I getting this error?"

首先,我建议您了解一下 ifelseelse if 是如何工作的,因为了解分支的工作方式是您掌握的核心知识需要编写能够正常运行的代码。

当您使用 else if 时它不起作用的原因是因为 else if block 中的代码只有在 的 boolean 表达式时才会执行>else if block 评估为真。所以 Java 编译器发现有一种情况是 none block 被执行(所以 ifelse if block 都没有被执行).这意味着在某些情况下,return 语句都不会执行。这违反了方法的签名,该方法总是 返回一个int。现在,当您将 else if 更改为 else 时,您的代码可以正常工作,因为 else 中的代码将始终 运行如果前面的 if(或 else if) block 没有运行。

关于java - Java 返回类型中的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12117552/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com