2017-08-12 15 views
-2

私はPHPには新しく、この無限ループの作業には問題があります。私は無限whileループを1から10までの乱数を生成し、それらの数値の立方根を出力し、5が生成されたときにループを終了させようとしています。これまでのところ私は以下のコードを持っており、どこが間違っているのか分かりません。どんな助けや指導も大歓迎です。PHP Infinite Whileループを終了する

$counter = rand(1, 10); 
while ($counter==5) { 
    break; 
    if ($counter >5 or $counter<5) { 
     echo sqrt($counter) . "</br>"; 
    } 
    $counter++; 
} 

編集:私はあなたたちは以下の私に与えたと私は、このような「または」になってきて「と」と自分自身をしていたいくつかのミスに気づいたアドバイスに耳を傾けてきました。しかし、私はまだ彼らの力に1から10の数字でループを生成していない理由を理解していませんか?

while(true) 
{ 
$counter = rand(1, 10);  
    if ($counter <=10) { 
     echo sqrt($counter) . "</br>"; 
    } 
if($counter ==5) break; 
} 
+0

あなたのように見える可能性が何をしたいかもしれないもの その反復が実際に起こった場合は何かをしたい - あなたは最初のものが何であれループから抜け出す。そして、もしあなたがそれをしなかったら、意味を成していないものをやり続けます。私たちにこれを得るために5でなければならなかった無作為な価値が、5よりも大きいか、あなたのこと? – CBroe

+0

私は仲間を学んでいます。私はあなたが言っていることを理解しています。これは、この問題でif文を使用しても意味がありませんか? – madoreo

+0

ifは余計ですが、whileループ条件を正しく取得するだけです。ループが終了すると、それ以上条件が満たされていないので、もちろん$ counter!= 5でなければなりません。あなたのwhileループは、最初に生成されたランダム値が5にならない場合、10回のうち9回も開始しないという問題が残っています。これに対して、 'do ... while'ループを使用したい少なくとも1回は実行し、ループ本体が実行された後で条件をチェックします。また、_new_ランダム値を作成することを怠りました。その部分はdo whileループに属し、最初のものです。 – CBroe

答えて

0

私は、PHPで無限ループを作成すると思いますか?

ちょうどこのコード

一方(TRUE){ エコーランド(1,10)。 "
"; }

1

あなたはループを壊しています(進行中)カウンターは5に等しく、条件が満たされた場合は1回だけエコーします。あなたは、ランダムな値が5であることを起こった場合にループがしかさえ、最初の反復を行うことを開始する。しかし、あなたが気にしないし、いない間

while(true) 
{ 
    $counter = rand(1 , 10); 
    #echo stuff 
    if($counter == 5) break; 
    } 
+0

私はあなたが何を意味するのか理解しています!私はこれに合わせてコードを変更しましたが、私はまだそれらの力に生成された数字を得ることができません。 – madoreo