新手关于for语句的疑问,请高手帮忙解答下

新手关于for语句的疑问,请高手帮忙解答下

<?php
function fun($n)  //函数
{
$result=1;
for($i=2;$i<=$n;$i++)
        $result*=$i;
return $result;
}
for($i=1;$i<=6;$i++)  //主程序
{$num=fun($i);
echo "$i  $num<br>";
}
?>

小弟对for很有疑问,上面的程序是求1~6的阶乘,第一个for语句里面的$i=2换成$i=1,也就是for($i=2;$i<=$n;$i++)换成for($i=1;$i<=$n;$i++)后整个程序的结果还是一样,我在书上看的是说for(表达式1;表达式;表达式;),表达式1是无条件先运行一次,然后判断表达式是否为真,如果为真,运行表达式3;然后再返回表达式2判断...知道表达式为假为止。
那小弟对上面的程序的理解是:从主程序看起,按上面写的for中的第一个表达式也就是$i1=1要先运行一次,往下运行就是$num=fun(1),把1带入函数中,然后是函数中的那个for语句,$i=2要无条件运行一次,那就是$return的结果是2,然后判断$i<=$n,即2<=1为假,终止运行,所以我觉的当主程序中$i=1时,输出的1的阶乘应该变成2才是(虽然我也觉的这个答案用现实算是错的),请高手帮忙解答下疑问。
还有能不能帮忙讲解一下return

for($i=2;$i<=$n;$i++)换成for($i=1;$i<=$n;$i++)后整个程序的结果还是一样
因为 $result 乘以 1还是$result啊
比如
3*1*2 等于 3*2
如履薄冰

引用:
原帖由 我不是鱼 于 2009-7-16 22:21 发表
for($i=2;$i
其实你还是不明白我想说的意思,可能我表达不清吧