你算阶乘,比如4=432*1,那么循环次数就是n,fact *=i; 意思是 fact = fact * i ; 所以 i 当然是一个定值!
i就是把n的值保存下来,因为后面n会变化,n的原始值就丢失了,所以要提前保存下来。看你的程序应该是算n的n次方。运算过程中i没有变化,所以最后i打印出来是原始值