Matlab 的返回控件在递归函数中的行为如何?



它会返回到递归函数还是调用递归函数的函数?

在我的角度,它将首先返回递归函数。

一个小测试:

功能accu.m

function [AN] = accu(num,an)
  disp(['recursive function with num = ' num2str(num)])
  if (num==0) 
      AN=an;
      return
  end
  AN=accu(num-1,an+num);
  disp(['recursive function with num = ' num2str(num) '.'])
end

当我们致电accu(5,0)时,它将返回:

recursive function with num = 5
recursive function with num = 4
recursive function with num = 3
recursive function with num = 2
recursive function with num = 1
recursive function with num = 0
recursive function with num = 1.
recursive function with num = 2.
recursive function with num = 3.
recursive function with num = 4.
recursive function with num = 5.
ans =
    15

最新更新