java - 方法必须返回 int

标签 java while-loop greatest-common-divisor

我正在编写一个程序,该程序使用 GCD(a, b) = GCD(b, r) r = a%b 的欧几里得算法。我写了一个方法,该方法应该返回一个整数供 main 方法吐出,但是当我要求它这样做时,它说它没有返回一个整数。这是代码

public class Euclid {

    public static int GCD(int a, int b)
    {
        while (b != 0)
        {
            int r = a%b;
            System.out.println("(" +a+ "," +b+ ")");
            b = r;
            a = b;
            if(b == 0)
            {
                return a;
            }
        }
    }
    public static void main(String[] args)
    {
        System.out.println(GCD(36, 20));    
    }
}

最佳答案

在代码中,如果 b == 0,它不会返回 int 或与此相关的任何值。您必须处理这种情况,很可能是通过指定默认返回值。

  public static int GCD(int a, int b)
    {
        while (b != 0)
        {
            int r = a%b;
            System.out.println("(" +a+ "," +b+ ")");
            b = r;
            a = b;
            if(b == 0)
            {
                return a;
            }
        }
        return 0;
    }

关于java - 方法必须返回 int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15191611/

相关文章:

java - 使用什么数据挖掘应用程序?

java - 使用 lambda for 机制在 Selenium 中查找元素

java - Java Socket InputStream读取数据,但返回顺序错误

c - 如何在一个循环中组合序列号和null?

c++ - GCD 如果正数和负数

java - 如何以编程方式使用 Spring 的 JdbcTemplate?

c++ - 循环无限时的输入验证

Delphi - 如何制作具有启动/停止功能的毫秒或纳秒计时器?

algorithm - Knuth 计算机编程艺术 ex 1.1.8

c++ - 找出数组中有多少个不同的浮点值