计算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);
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
if(i>1)
{print();//先到这里,但这里是递归,又调用当前函数,当前函数没有执行完
System.out.println("* "+sum);//当B时点执行完后,这里才开始接着执行。所以先输出sum=
}
else
System.out.println("sum="+sum);//最后一次执行完这里,整个函数返回,执行完编辑为B
}