函数up_and_down(1)执行句1,调用函数up_and_down(2),这是句2打印出的level为什么是level2不是level 1,初学者对这个递归有点不明白


#include
 void up_and_down(int);
 
 int main(void)
 {
     up_and_down(1);
     return 0;
 }
 
 void up_and_down(int n)
 {
     printf("Level %d",n);  //句1 
     if(n<4)
     
         up_and_down(n+1);
         printf("Level %d",n);      //句2 
     
 }

你好请问,当n=1时,函数up_and_down(1)执行句1,接着判断当n<4,调用函数up_and_down(2),这是句2打印出的level为什么是level2不是level 1,初学者对这个递归有点不明白

这个是递归调用up_and_down
其实相当于循环,从n打印到4再打印回来。