当前位置: 首页 > 知识库问答 >
问题:

在方法中使用数学函数时,为什么return语句会引发错误

云煌
2023-03-14

为什么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++;
        }
        return res;
    }
    public static void main(String[] args) {
        
        System.out.println(hcf(5,25));
    }
}

共有1个答案

谢叶五
2023-03-14

这可能有帮助,也可能没有帮助,但是IMOwhile(true)语句是一种真正的代码味道。您可以将此方法重写为:

public class HCF_1 {
   
   static int hcf(int a, int b)
   {
       int res = Math.max(a,b);
       while(res % a != 0 || res % b != 0)
           res++;
       return res;
   }
   public static void main(String[] args) {
       System.out.println(hcf(5,25));
   }
}

现在只有一个return语句,没有快捷方式。

注意,操作!(res%a==0&res%b==0)res%a!=0res%b!=0相同,这是由于布尔逻辑的属性:~(a和b)==~a或~b

 类似资料:
  • 新的ES6箭头函数表示在某些情况下是隐式的: 表达式也是该函数的隐式返回值。 在什么情况下,我需要将与ES6箭头函数一起使用?

  • return语句用来从一个函数 返回 即跳出函数。我们也可选从函数 返回一个值 。 使用字面意义上的语句 例7.7 使用字面意义上的语句 #!/usr/bin/python # Filename: func_return.py defmaximum(x, y):     ifx > y:         returnx     else:         returny printmaximum(

  • 问题内容: 我是Java的新手,这是什么意思?像吗? 如果第二个返回true,将不会执行,对吗? 问题答案: Return语句跳过功能范围的其余执行。 值得读: :http : //docs.oracle.com/javase/tutorial/java/javaOO/returnvalue.html :http : //docs.oracle.com/javase/tutorial/java/n

  • 问题内容: 运行以下代码时(在Mac OS X 10.7的Mac上为Python 2.7.1) 我收到以下错误 我已经仔细检查了错误的制表符和/或空格。当我使用推荐的4个缩进空格时,可以确认代码失败并出现上述错误。当将返回值置于其他控制语句内时(例如,if,for等),也会发生此行为。 任何帮助,将不胜感激。谢谢! 问题答案: 在 返回 的语句才有意义,里面的功能:

  • 我还检查了调试,它将语句=>if(sum==1)返回true;但它也在执行更多的语句。

  • 问题内容: 我编写了一个打印表格的程序。我没有在主函数中包含返回语法,但是无论何时我键入echo $?它显示12。 我的源代码: 我尚未编写return 12,但每次执行程序时它仍返回12。 谢谢。 问题答案: 正如swegi所说,这是未定义的行为。 正如史蒂夫·杰索普(Steve Jessop)等人所说,在C89之前,它是一个未指定的值,并在C99中指定(观察到的行为与C99不符)。 在大多数环