package Eric;
import java.util.Scanner;
public class test{
public static void main(String[] args) {
Scanner a=new Scanner(System.in);
System.out.println("输入N值:");
int N=a.nextInt();
int s=1;
do {
s=s*N;//为什么N--不能写在S*=N
N--;
}while(N>=1);
System.out.println("结果:"+s);
}
}
为什么我的N--写在s*=N的前面 我输入什么数字结果都是等于0 ,
我的理解是当我输入N等于10的时候,进去do-while语句中先递减一次等于9,然后s开始进行计算得到s=1*9 然后N大于等于1,进行循环工作。 但是结果就是一直都是等于0;
当我把N自减移到下面程序结果就是正常的。。
因为 while的判断句写错了 应该写>1 因为=1会再次执行一次while循环此时的n会等于0,此时在执行n阶乘公式就会和0相乘。这也是n--为什么写在后面会是