Java打印阶乘1-30

Java打印阶乘1-30,java,factorial,Java,Factorial,我所要做的就是打印 数字0-30。当我运行它时,它会无休止地打印阶乘=0。有人能告诉我怎么改正吗 public static void factor(){ int n=0; int factorial = 1; while (n<=0&n<=30) { n=n++; factorial = factorial * n; n--; System.out.println("Factorial =

我所要做的就是打印 数字0-30。当我运行它时,它会无休止地打印阶乘=0。有人能告诉我怎么改正吗

public static void factor(){

    int n=0;
    int factorial = 1;
    while (n<=0&n<=30)
    {
        n=n++;
      factorial = factorial * n;
      n--;
      System.out.println("Factorial = " + factorial);
    }


}


public static void main(String[] args) {
   factor();
}
公共静态空隙系数(){
int n=0;
整数阶乘=1;

当(n你在循环中递减
n
时,它总是在
0
1
之间切换。此外,
int
不能容纳这么大的数字,也不能容纳
长的
。你必须使用更智能的工具,比如:

int n=0;
BigInteger阶乘=BigInteger.1;
而(n删除
n--
。另外,
x*0=0
int n = 0;
BigInteger factorial = BigInteger.ONE;
while (n <= 30) {
    System.out.printf("Factorial(%d) = %s%n", n, factorial);
    n++;
    factorial = factorial.multiply(BigInteger.valueOf(n));
}