使用do-while循环的工厂。 num1变量等于零,但是while的条件是num1> = 1。这是怎么工作的?

问题描述 投票:0回答:1
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?

java do-while factorial
1个回答
0
投票

因为这是一个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);
 }
© www.soinside.com 2019 - 2024. All rights reserved.