PHP for循环到while循环

PHP for循环到while循环,php,Php,嘿,准备考试,有这个循环 <?php $ab = 0; $xy = 1; echo "<table>"; for ($i = 0; $i < 5; $i++) { echo "<tr>"; echo "<td>" . $ab . "</td><td>" . $xy . "</td>"; $ab += $xy; $xy += $ab;

嘿,准备考试,有这个循环

<?php 
$ab = 0; 
$xy = 1; 

echo "<table>";

for ($i = 0; $i < 5; $i++) {     
    echo "<tr>";     

    echo "<td>" . $ab . "</td><td>" . $xy . "</td>";
    $ab += $xy;     $xy += $ab;     

    echo "</tr>"; 
} 
echo "</table>";

要将
for
循环替换为
while
循环,可以在启动while循环之前声明一个变量,该变量将指示循环的当前迭代。然后,您可以在while循环的每次迭代中减少/增加该变量。所以你会有这样的想法:

$counter = 0;
while ($counter < 5) {
  echo "";
  echo "<td>" . $ab . "</td><td>" . $xy . "</td>";
  $ab += $xy;     
  $xy += $ab;     
  echo "</tr>"; 
  $counter++;
} 
$counter=0;
而($counter<5){
回声“;
回声“$ab.”“$xy.”;
$ab+=$xy;
$xy+=$ab;
回声“;
$counter++;
} 
一般而言:

for ($i = 0; $i < x; $i++) {
  do stuff
}
($i=0;$i{ 做事 }
相当于:

$counter = 0;
while ($counter < x){
  do stuff
  counter++;
}
$counter=0;
而($counter
$ab=0;
$xy=1;
回声“;
$i=0;
而($i<5){
回显“$ab$xy”;
$ab+=$xy;
$xy+=$ab;
$i++;
}
回声“;
解释:
与“for”循环相比,在打开循环之前必须初始化“计数器”[$i=0]
在循环内部,指定继续循环的条件[$i<5]
在循环的某个地方,增加“计数器”[$i++]
您的“计数器”可以增减,也可以直接设置;这都是关于你的代码逻辑和你的需求。

您还可以在需要时随时中断循环,请参见示例:

while ($i < 5) {
    echo "<tr><td>$ab</td><td>$xy</td></tr>";
    $ab += $xy;
    $xy += $ab;
    if ($ab == 22) { // If $ab is equal to a specific value
        /* Do more stuff here if you want to */
        break; // stop the loop here
    }
    $i++;
}
while($i<5){
回显“$ab$xy”;
$ab+=$xy;
$xy+=$ab;
如果($ab==22){//如果$ab等于特定值
/*如果你想在这里做更多的事情*/
break;//在这里停止循环
}
$i++;
}
此示例也适用于“for”循环。
还有另一个关键字“continue”,用于指示“跳转”到下一个循环迭代:

while ($i < 5) {
    $i++; // Don't forget to increase "counter" first, to avoid infinite loop
    if ($ab == 22) { // If $ab is equal to a specific value
        /* Do more stuff here if you want to */
        continue; // ignore this iteration
    }

    /* The following will be ignored if $ab is equal to 22 */
    echo "<tr><td>$ab</td><td>$xy</td></tr>";
    $ab += $xy;
    $xy += $ab;
}
while($i<5){
$i++;//不要忘记先增加“counter”,以避免无限循环
如果($ab==22){//如果$ab等于特定值
/*如果你想在这里做更多的事情*/
continue;//忽略此迭代
}
/*如果$ab等于22,则忽略以下内容*/
回显“$ab$xy”;
$ab+=$xy;
$xy+=$ab;
}

你有没有试过什么东西,在什么地方卡住了,或者你只是让我们帮你编码?
而($i<5)
。。。然后在
中增加
$i
,而
,否?确实这是一个很好的学习策略吗?通过问一个问题的答案?@arkascha我问了我应该记住什么。。我通过观察代码是如何工作的来学习,然后我就能知道它是如何工作的。我没有说我很好或者什么对不起,但那不是一个人学习编码的方式。如果您改为使用循环构造的定义(请参阅带有示例的官方文档)并自己解决问题,您将获得更大的成功。当你这样做的时候,你可以说你理解了如何使用这些语言结构。虽然这个代码片段可以解决这个问题,但确实有助于提高你文章的质量。请记住,您将在将来回答读者的问题,这些人可能不知道您的代码建议的原因。还请尽量不要用解释性注释挤满您的代码,因为这会降低代码和解释的可读性!
while ($i < 5) {
    $i++; // Don't forget to increase "counter" first, to avoid infinite loop
    if ($ab == 22) { // If $ab is equal to a specific value
        /* Do more stuff here if you want to */
        continue; // ignore this iteration
    }

    /* The following will be ignored if $ab is equal to 22 */
    echo "<tr><td>$ab</td><td>$xy</td></tr>";
    $ab += $xy;
    $xy += $ab;
}