2016-08-14 24 views
-4

こんにちは、試験のために勉強し、このループを持っています。PHP forループからwhileループ

<?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>"; 

ここで、whileループとして書き直すにはどうすればよいですか?何を念頭に置いて、

ありがとう!

+4

さて、あなたも何かを試してみましたが、どこかに捕まってしまったか、あなただけのコードに私たちを求めているしていますあなたのために? – Rizier123

+0

'while($ i <5)' ... 'while'で '$ i'をインクリメントします。 http://php.net/manual/en/control-structures.while.php – chris85

+0

これは実際には何かを知る良い戦略ですか?質問の答えを尋ねることによって? – arkascha

答えて

-1

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; 
while ($counter < x){ 
    do stuff 
    counter++; 
} 
0
$ab = 0; 
$xy = 1; 
echo "<table>"; 
$i = 0; 
while ($i < 5) { 
    echo "<tr><td>$ab</td><td>$xy</td></tr>"; 
    $ab += $xy; 
    $xy += $ab; 
    $i++; 
} 
echo "</table>"; 

for ($i = 0; $i < x; $i++) { 
    do stuff 
} 

は同等です "のため" と比較
ループを開く前に "counter"を初期化する必要があります[$ 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++; 
} 

また、この例は、「for」ループで動作します。
そして次のループ反復に「ジャンプ」に伝えるために使用される別のキーワード、「継続」、もあります:

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; 
} 
+0

このコードスニペットは質問を解決するかもしれませんが、[説明を含む](// meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers)本当にあなたの投稿の質を向上させるのに役立ちます。将来読者の質問に答えていることを覚えておいてください。そうした人々はあなたのコード提案の理由を知らないかもしれません。また、コードと説明の両方の可読性が低下するため、説明的なコメントを使用してコードを混乱させないようにしてください。 – FrankerZ

+0

あなたが正しいです、少し編集しました – Marc