Java 在方法中使用数学函数时,为什么返回语句抛出错误
在方法中使用数学函数时,为什么return语句抛出错误Java 在方法中使用数学函数时,为什么返回语句抛出错误,java,Java,在方法中使用数学函数时,为什么return语句抛出错误 public class HCF_1 { static int hcf(int a, int b) { int res = Math.max(a,b); while(true) { if(res%a==0 && res%b==0) return res; else res+
public class HCF_1 {
static int hcf(int a, int b)
{
int res = Math.max(a,b);
while(true)
{
if(res%a==0 && res%b==0)
return res;
else res++;
}
return res;
}
public static void main(String[] args) {
System.out.println(hcf(5,25));
}
}
while循环是一个永无止境的循环,只有在if块中提到的条件下才被转义,if块是return
语句,而不是break
语句。因此,方法hcf的最后一行返回res代码>在任何情况下都无法访问
while循环是一个永无止境的循环,只有在if块中提到的条件下才被转义,if块是return
语句,而不是break
语句。因此,方法hcf的最后一行返回res代码>在任何情况下都是不可访问的。如果您的返回结果的最后一行出现无法访问的原因,那么您必须做两件事:
如果
,则移除内的返回,并添加中断
返回方法的最后一行returnres代码>
如果您的返回结果的最后一行无法访问if else
中的代码段,那么您必须做两件事:
如果
,则移除内的返回,并添加中断
返回方法的最后一行returnres代码>
这可能有帮助,也可能没有帮助,但IMOwhile(true)
语句是一种真正的代码味道。您可以将此方法重写为:
公共类HCF_1{
静态整数hcf(整数a、整数b)
{
int res=数学最大值(a,b);
而(res%a!=0 | | res%b!=0)
res++;
返回res;
}
公共静态void main(字符串[]args){
系统输出println(hcf(5,25));
}
}
现在只有一个return语句,没有快捷方式
请注意,操作!(res%a==0&&res%b==0)
与res%a!=0 | |分辨率%b!=0
,由于布尔逻辑的属性:~(A和B)=~A或~B
这可能有帮助,也可能没有帮助,但IMOwhile(true)
语句是真正的代码味道。您可以将此方法重写为:
公共类HCF_1{
静态整数hcf(整数a、整数b)
{
int res=数学最大值(a,b);
而(res%a!=0 | | res%b!=0)
res++;
返回res;
}
公共静态void main(字符串[]args){
系统输出println(hcf(5,25));
}
}
现在只有一个return语句,没有快捷方式
请注意,操作!(res%a==0&&res%b==0)
与res%a!=0 | |分辨率%b!=0
,由于布尔逻辑的属性:~(A和B)==A或~B
它是不可访问的。将第一个返回
替换为中断
。或者删除第二个返回值
。顺便说一句,一旦按照fluffy的建议修复了错误,这将不会给您hcf;它会给你lcm,这能回答你的问题吗?你能不能和蔼可亲一点,把错误信息发出去?这是不可能的。将第一个返回
替换为中断
。或者删除第二个返回值
。顺便说一句,一旦按照fluffy的建议修复了错误,这将不会给您hcf;它会给你lcm,这能回答你的问题吗?你能不能和蔼一点,把错误信息贴出来?
public class HCF_1 {
static int hcf(int a, int b)
{
int res = Math.max(a,b);
while(true)
{
if(res%a==0 && res%b==0)
return res;
else res++;
}
return res; //last line of the method hcf is unreachable
}
public static void main(String[] args) {
System.out.println(hcf(5,25));
}
}
public class HCF_1 {
static int hcf(int a, int b) {
int res = Math.max(a, b);
while (true) {
if (res % a == 0 && res % b == 0)
break;
else
res++;
}
return res;
}
public static void main(String[] args) {
System.out.println(hcf(5, 25));
}
}