| 你说的为什么结果只是: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);
   }
}
 |