A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

除了迭代和for循环 还有其他方法吗   

4 个回复

倒序浏览
还有while循环,do循环。。
回复 使用道具 举报
递归
public static void main(String[ ] args){
         System.out.println( show(5));
}
private int show(int i){
    if(i = = 1){
     return 1;
}
    return i *show(i-1);//这就相当于传个5进来,然后5*(5-1)然后调用自己变成4,一直调用到1,执行上面的==1结束
}
回复 使用道具 举报
本帖最后由 lovetonia 于 2015-11-27 02:47 编辑
  1. class Factorial
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 int n=3;
  6.                 System.out.println(getFac(n));
  7.         }

  8.         public static int getFac(int n)
  9.         {
  10.                 if (n<0)
  11.                         throw new RuntimeException("非法");
  12.                 else if (n==1||n==0)
  13.                         return 1;
  14.                 else
  15.                         return n*getFac(n-1);
  16.         }
  17. }
复制代码

同递归,n的阶乘可以由(n-1)的阶乘与n的乘积算得,方法调用方法自己行了,终止条件就n=1的时候,我这个多写了点,因为数学里规定0的阶乘是1
回复 使用道具 举报 1 0
Q前来学习一个!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马