开发者社区 问答 正文

JAVA函数递归调用问题

计算5!

public class Function {
 static int i=5,sum=1;
 public static void print(){
 sum=sum*i;
 i--;
 if(i>1)
 {print();
 System.out.println("***** "+sum);
 }
 else 
 System.out.println("sum="+sum);
 }
public static void main(String[] args) {
    // TODO Auto-generated method stub
    print();

}

输出结果:
sum=120
120
120
120
在结果输出后为何继续多次执行 System.out.println(" "+sum);

展开
收起
蛮大人123 2016-02-21 15:36:27 2226 分享 版权
1 条回答
写回答
取消 提交回答
  • 我说我不帅他们就打我,还说我虚伪

    if(i>1)
    {print();//先到这里,但这里是递归,又调用当前函数,当前函数没有执行完
    System.out.println("* "+sum);//当B时点执行完后,这里才开始接着执行。所以先输出sum=
    }
    else
    System.out.println("sum="+sum);//最后一次执行完这里,整个函数返回,执行完编辑为B
    }

    2019-07-17 18:46:01
    赞同 展开评论
问答分类:
问答地址: