【问题标题】:Xcode ggT - Control may reach end of non-void functionXcode ggT - 控制可能到达非空函数的结尾
【发布时间】:2013-11-06 20:13:17
【问题描述】:

我想实现一个简单的 ggT 算法,但 Xcode 让我抓狂......

int ggT(int a, int b){
    if (b==0)
        return a;

    else
        ggT(b, a%b);
}

我明白为什么会出现错误,所以我添加了 return -1;最后以为这永远不会被退回,但每次都会被退回。

int ggT(int a, int b){
    if (b==0)
        return a;

    else{
        ggT(b, a%b);
        return -1;
    }
}

我还在其他 IDE (Netbeans) 中尝试过,它运行良好。有人可以解释为什么这在 Xcode 中不起作用吗?

提前致谢

【问题讨论】:

    标签: xcode


    【解决方案1】:

    调用函数不会自动返回结果:需要在递归ggT调用之前添加return

    int ggT(int a, int b){
        if (b==0)
            return a;
    
        else{
            return ggT(b, a%b);
        }
    }
    

    【讨论】:

    • 好的,谢谢你的作品,但我不明白为什么需要这样做?据我了解,这也应该在没有回报的情况下工作。因为只要 b 为 0,它就会返回 a。 (我的意思是它甚至可以在其他 IDE 中使用)无论如何感谢您的快速回复
    • 问题是如果你只是调用 ggT 它的返回值被忽略并且执行继续到函数的末尾,并且没有返回语句。其他 IDE 中的编译器可能没有警告您,但它不会像您预期的那样工作
    猜你喜欢
    • 1970-01-01
    • 2014-05-11
    • 1970-01-01
    • 1970-01-01
    • 2013-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多