2016-10-22 16 views
0
$i=0; $j=5; $k=0; 

while($i < 5) { 
    while($j > $i){ 
     echo " "; 
     $j--; 
    } 
    while($k <= $i){ 
     echo '*'; 
     ++$k; 
    }  

    echo "<br/>"; 
    $i++; 
} 

phpではwhileループを使用してアスタリスクのピラミッドを作成しようとしていますが、出力は画像に囲まれています。アスタリスク文字はピラミッドを示していません。代わりに、ちょうど1行で:php whileループを使用したアスタリスクピラミッド

output from above code

私のコードの誤りを啓発してください。

答えて

1
<pre><?php 

$left = 4; 
$right = 4; 
$i = 0; 

while($i < 5) { 
    $j=0; 
    while($j<11){ 
     if($j >= $left && $j <= $right){ 
       echo "*"; 
     }else{ 
       echo " "; 
      } 
     $j++; 
    } 

echo "<br>"; 
$left--;$right++; 
$i++; 

} >

あなただけのwhileループを使用して興味を持っている場合は、これを試してみてください、しかし、流れを理解し、学ぼうとデバッグ?あなたの問題

+0

ありがとうございます。解決した –

1

while($ i < 5)の各反復で$ j = 5と$ k = 0を設定する必要があります。 さらに、Webブラウザはスペース文字を1つのスペースに変換します。だから、より多くのスペースで結果を見るには、代わりに '&nbsp;' html文字を使用する必要があります。

$i=0; $j=5; $k=0; 

while($i < 5) { 
    $j=5; $k=0; 

    while($j > $i){ 
     echo "&nbsp;"; 
     $j--; 
    } 
    while($k <= $i){ 
     echo '*'; 
     ++$k; 

    } 


    echo "<br/>"; 
    $i++; 
} 

出力画面:http://imgur.com/VnQERDZ

+0

ありがとうございます。 –

関連する問題