当一个返回值中有两个值时,java如何返回一个值

时间:2015-10-12 13:37:54

标签: java recursion return-value

假设int a = 12,int b = 22。然后gcd(b,a%b)或gcd(22,12)如何返回值?

private int gcd(int a, int b){
    if(b==0) {
        if(a<0){
            return -a;
        } else {
            return a;
        }
    } else {
        return gcd(b,a%b);
    }
}

3 个答案:

答案 0 :(得分:0)

我不确定这里的问题是什么,但听起来你觉得这个函数返回了两个值。

最后'l'语句实际发生的是,它返回了调用return的结果。所以它并没有真正返回两个值,它只返回该调用的结果,这是gcd(b, a%b);类型的单个值。

答案 1 :(得分:0)

据我所知,这是Response Code : 500 Response Body : { "name" :"INTERNAL_SERVICE_ERROR", "message":"An internal service error has occurred", "information_link":"https://developer.paypal.com/webapps/developer/docs/api/#INTERNAL_SERVICE_ERROR", "debug_id":"efbbc528aeaaf" }, change log level to DEBUG for details. 可以用作返回值的方式。这很简单:gcd(a , a % b)递归调用return gcd(a , a % b)并返回此调用的返回值,即gcd

答案 2 :(得分:0)

结果返回2基本上如果b的值不等于0,它将再次运行函数gcd,其中你的新a现在是b而你的新b是%b。重要的是,这将在函数gcd的递归循环中重复,直到你的b等于0.

一旦你的b等于0,它将进入你的第二个循环,检查a是否小于0或任何负数。如果是负数,则返回a的负值。如果它是正数或更大或等于零,它将返回a的正值。

如果你仍然不明白我想说什么,可能你需要了解gcd如何计算。您可以阅读有关此website

的更多信息