php for循环从未执行

php for循环从未执行,php,for-loop,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

我在运行这个脚本时遇到了一个愚蠢的问题。为什么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>";
  };
};

?>

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

它永远不会进入

for ($z=0; $z==$max;  $z++) 
z
不能
=
$max


请尝试以下方法:

for ($z=0; $z<=$max;  $z++)
$z=0;$z的

您想要$z:

第一个表达式(expr1)在循环开始时无条件计算(执行)一次

在每次迭代开始时,对expr2求值。如果求值为TRUE,则循环继续并执行嵌套语句。如果求值为FALSE,则循环的执行结束

在每次迭代结束时,计算(执行)expr3


您可能希望放入
$z,因为只有当第二条语句在您的情况下为true时才会运行循环
$z==$max
。这绝对不是真的,因为您已经定义了$z的值为0而$max为3000。这就像您为($z=0;0==3000;$z++)输入了

事实上,它永远不会运行,甚至不会运行一次。
expr2
在第一次迭代之前为FALSE,因此不会发生任何事情。谢谢,你是对的。我将“第一个表达式(…)被无条件计算(…)误读为“第一个循环将无条件执行…”。我的错误:-)@kjy112查看修订历史记录。一定是在同一时间编辑的。我不是想改变你答案的内容,只是想改变“代码”的格式。如果你觉得被冒犯了,我向你道歉。
for ($z=0; $z==$max;  $z++) 
$z = 0;
while($z == $max){
     // Do Stuff
     $z++;
}
for (expr1; expr2; expr3)
    statement