php for-loop从未执行过

时间:2011-11-16 16:17:50

标签: php for-loop

运行此脚本时出现了一个愚蠢的问题。为什么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>";
  };
};

?>

编辑:如你所见,有可能学习愚蠢; - )

4 个答案:

答案 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)

Manual

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>