课本上的例子不太懂,问一下

img

想问最后一行是干什么的,是不是相当于省了一个else?还是什么?
我搞不懂它的逻辑关系,求解

那是因为你没有理解return的作用
它不仅给函数的返回值赋值,同时直接结束了函数,不再执行后续的代码
所以if里如果写了return,就不再需要写else
逻辑本身保证了不可能执行完一个return再去执行另一个return

最后一行是排除前面两种情况的返回值。

可以理解为:

if(x==y){
return x;
}else if(x>y){
return common(x/2,y);
}else{
return common(x,y/2);
}

最后一行是不满足前两种条件的默认返回值

最后一行是x<y的情况,可以理解成省了一个else;
用else:
if(x>y)
return commmon(x/2,y);
else
return conmmon(x,y/2);

就像这样

      if (x == y) {
        return x;
      }else if (x > y)
      {
        return common(x / 2, y)
      }else{
        return common(x, y / 2)
      }