运行此脚本时出现了一个愚蠢的问题。为什么for循环的主体从未执行过?
<?php
ini_set('error_reporting', E_ALL);
$i=0.0;
$j=1.0;
$max=3000;
for ($z=0; $z==$max; $z++) {
$i += (1.0/$max);
$j -= (1.0/$max);
echo "j=$j - i= $i <br>";
if( ($z % 100) == 0){
echo "j=$j ¦ i= $i <br>";
};
};
?>
编辑:如你所见,有可能学习愚蠢; - )
答案 0 :(得分:8)
永远不会进入。
for ($z=0; $z==$max; $z++)
z
不能==
到$max
请改为尝试:
for ($z=0; $z<=$max; $z++)
答案 1 :(得分:3)
for ($z=0; $z==$max; $z++)
你想要$ z&lt; = $ max。
for循环的中间是条件语句,如果它的计算结果为false则不执行。
该循环基本上与:
相同$z = 0;
while($z == $max){
// Do Stuff
$z++;
}
答案 2 :(得分:0)
for (expr1; expr2; expr3) statement
第一个表达式(expr1)在循环开始时无条件地计算(执行)。
在每次迭代开始时,将评估expr2。如果它的计算结果为TRUE,则循环继续并执行嵌套语句。如果计算结果为FALSE,则循环的执行结束。
在每次迭代结束时,expr3被评估(执行)。
您可能希望将$z<=$max
放在那里。
答案 3 :(得分:0)
因为只有在你的情况$z == $max
中第二个语句为真时才会运行循环。这绝对不是真的,因为您已经定义 $ z 的值 0 且$ max是3000.就像您输入了for($z=0;0 == 3000;$z++){}
< / p>