你说的为什么结果只是:0!=1 0!=1呢?我测试了,我发现,你的程序中的if(i>0)sum*=i;一直在运行计算着,但是并没有打印。
你的程序是这么运行的:
i 执行条件 结果 注
i=0 if(i==0) sum=1; sum=1
sop(i+"!="+sum); 打印出0!=1
和
else if(i%2==0) sum=1
sop(i+"!="+sum); 打印出0!=1
i=1 if(i>0) sum *= i; sum=1但没打印 后面不不执行,i++后进行第二次循环
i=2到i=10 if(i>0) sum *= i; sum=n!但没打印 直到i=10,else if(i%2==0)都没执行,结果为10!=3628800
但是注意,出了for循环不能使用写这条语句sop(i+"!="+sum);,因为i是局部变量,只定义在了for循环内
你要是想打印n!和n分别为2,4,6,8,10的结果,我改了改你的代码:- class Example3
- {
- public static void main(String[] args)
- {
- int sum = 1;
- int sum1 = 1;
- int i = 0;
- for(;i<=10;i++)
- {
- if(i==0)
- sop(i+"!="+sum);
- else
- sum*=i;
- if(i%2==0 & i!=0)
- sum1*=i;
- }
- sop((i-1)+"!="+sum);
- sop("n为2,4,6,8,10的结果:" + sum1);
- }
- public static void sop(Object obj)
- {
- System.out.println(obj);
- }
- }
复制代码 希望能对你有帮助。
|