Scanner scan = new Scanner(System.in);
System.out.println("Enter a number ") ;
int num = scan.nextInt();
int num1 = num;
do {
num1--;
num = num * num1;
} while (num1 >= 1);
System.out.println(num);
为什么结果为零,因为条件是num1大于或等于1?
因为这是一个while循环,并且您要检查num1> = 1,所以该循环将排出num1 = 1的值,和num1--结果为num1 = 0,因此导致整个阶乘为零:
Scanner scan = new Scanner(System.in);
System.out.println("Enter a number ") ;
int num=scan.nextInt();
int num1 = num ;
do{
num1--;
num= num * num1;
}while(num1>=2); // changed to 2
System.out.println(num);
}