这是求行列式的函数,在MAIN中通过r=js(a,N)调用; 此函数在头文件中
/*js()函数用于计算行列式,通过递归算法实现*/ 
 int js(int s[][N],int n) 
{
int z,j,k,r,total=0; 
    int b[N][N];/*b[N][N]用于存放,在矩阵s[N][N]中元素s[0]的余子式*/ 
    if(n>2) 
   {
for(z=0;z<n;z++) 
{
for(j=0;j<n-1;j++) 
                for(k=0;k<n-1;k++) 
                   if(k>=z) b[j][k]=s[j+1][k+1]; 
                   else b[j][k]=s[j+1][k]; 
                   if(z%2==0) r=s[0][z]*js(b,n-1); /*递归调用*/ 
                   else r=(-1)*s[0][z]*js(b,n-1); 
            total=total+r; 


    else if(n==2) total=s[0][0]*s[1][1]-s[0][1]*s[1][0]; 
   return total; 

请问,我设置断点单步运行时,在return total; 后并没有返回mian函数,而是又继续运行JS,搞不懂?return不是从被调函数返回到主调函数继续执行么,为什么当执行到最后一个括号时反复执行?