2017-09-22 12 views
-1

작동하지 않는 부분을 찾아 낼 수 없습니다. 중심에서 나는 단지 ++++++가있는 라인이 필요합니다. 그러나 나는 그것이 작동하는 것을 발견 할 수 없다. while 루프와 for 루프를 사용하지만 do while 루프는 작동하지 않습니다.PHP do-loop 메서드

그것은이

  -------+ 
      ------++ 
      -----+++ 
      ----++++ 
      ---+++++ 
      --++++++ 
      -+++++++ 
      ++++++++ 
      -+++++++ 

등 그러나 중간 라인 같은 것을 얻었다 모습은이 + 문자의 전체 라인되지 않고 있습니다.

 <?php 
     echo"<p>Do While loop</p>"; 
     $x1=8; 
     $x2=1; 
     do { 
      $x3=1; 
      do { 
       echo"--"; 
       $x3++; 
      }while($x3<$x1); 
      $x4=1; 
      do { 
       echo"+"; 
       $x4++; 
      }while($x4<=$x2); 
      echo"<br>"; 
      $x1--; 
      $x2++; 
     }while($x1>=0 and $x2<=8); 

     $y1=1; 
     $y2=7; 
     do { 
      $y3=1; 
      do { 
      echo"--"; 
      $y3++; 
      }while($y3<=$y1); 
     $y4=1; 
     do { 
      echo"+"; 
      $y4++; 
     }while($y4<=$y2); 
     echo"<br>"; 
     $y1++; 
     $y2--; 
     }while($y1<=7 and $y2>=1); 

    ?> 
+0

당신은 깊은 일을하고 있습니다. [chuckles]. 모든 진지하게, 당신은 당신의 문제 (실제로 2)에 대한 답을 가지고 있다고 말하지만, (경험상) 거의 사용되지 않는 구조를 사용하려고합니다. 2) 다른 개발자가 이해하는 것이 가장 쉽습니다. 3) 가장 빠른 실행 ... –

+0

아무도 이것을 디버깅하지 않습니다. https://ericlippert.com/2014/03/05/how-to-debug-small-programs/ – jdv

답변

0

결코 발생하지 않습니다.

do { /*Line 4*/ 
    echo"--"; 
    $x3++; 
}while($x3<$x1); 

에코는 중단 질문 전에 평가됩니다.

do while과 while 루프의 기본적인 차이점은 다음과 같습니다. while 루프에서는 조건이 다른 것보다 먼저 평가됩니다. do while 루프에서는 조건의 첫 번째 검사 전에 다른 모든 것이 평가됩니다.

0

나는 결국 그것을 알아 냈다. 첫 번째 내부 do 루프 뒤에 if ($ x1 < = 1) {break;}를두면 루프가 건너 뛰고 계속 진행하게됩니다.