想问最后一行是干什么的,是不是相当于省了一个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)
}