2016-10-22 2 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 루프를 사용하여 별표 피라미드를 만들려고하지만 출력 이미지는 동봉됩니다. 별표 문자는 피라미드를 표시하지 않습니다. 대신에 단지 한 줄의 :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++; 

} >

경우에만 루프 동안 사용이 관심이 있다면,이 하나를 시도하지만 흐름을 이해하려고 노력하고 배우고 디버그 당신의 문제

+0

고마워. 해결 된 –

1

while ($ i < 5)을 반복 할 때마다 $ j = 5와 $ k = 0을 설정해야합니다. 더구나 웹 브라우저는 공백 문자를 하나의 공백 문자로 변환합니다. 따라서 더 많은 공백이있는 결과를 보려면 대신 '&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

감사합니다. –

관련 문제