for문 ~~질문 합니다 선배님들 채택완료
jessiwith
6년 전
조회 2,687
</p>
<p><table border="1" width="300" height="150">
<?php
for ($i = 0; $i < 5 ; $i++)
{
echo "<tr bgcolor='lightgray' align='center'>";
for($j = 0; $j < 5; $j++)
{
echo "<td></td>";
}
echo "</tr>";
}
?>
</table></p>
<p> </p>
<p>
for문 위에 실행 순서~~ 가 좀 헷갈리는데 알려주시면 감사하겠습니다.
댓글을 작성하려면 로그인이 필요합니다.
답변 3개
채택된 답변
+20 포인트
6년 전
안에서부터 하나씩 해석하시면 됩니다.
그럼 foo는 아래와 같은 코드이겠지요?
</p>
<p>for($j=0; $j<5; $j++) {</p>
<p> echo "<td></td>";</p>
<p>}</p>
<p>
이 foo를 5번 반복하는 명령을 bar 라고 합니다.
그럼 bar는 아래와 같은 코드이겠지요?
</p>
<p>for($i=0; $i<5; $i++) {</p>
<p> // foo</p>
<p>}</p>
<p>
자 여기서 bar 코드 안에 빠진 부분을 채워넣어봅시다.
</p>
<p>for($i=0; $i<5; $i++) {</p>
<p> <code>echo</code> <code>"<tr bgcolor='lightgray' align='center'>"</code><code>;</code></p>
<p> // foo</p>
<p> <code>echo</code> <code>"</tr>"</code><code>;</code></p>
<p>}</p>
<p>
자 다시 되짚어봅시다.
foo는
이 의미를 다시 bar 안에 넣어봅시다.
</p>
<p>for($i=0; $i<5; $i++) {</p>
<p> <code>echo</code> <code>"<tr bgcolor='lightgray' align='center'>"</code><code>;</code></p>
<p> // <td></td>를 5번 반복한다.</p>
<p> <code>echo</code> <code>"</tr>"</code><code>;</code></p>
<p>}</p>
<p>
그럼 최종 결과물은
</p>
<p><code><tr bgcolor='lightgray' align='center'></code></p>
<p><code> <td></td><td></td><td></td><td></td><td></td></code></p>
<p><code></tr></code></p>
<p><code><tr bgcolor='lightgray' align='center'></code></p>
<p><code> <td></td><td></td><td></td><td></td><td></td></code></p>
<p><code></tr></code></p>
<p><code><tr bgcolor='lightgray' align='center'></code></p>
<p><code> <td></td><td></td><td></td><td></td><td></td></code></p>
<p><code></tr></code></p>
<p><code><tr bgcolor='lightgray' align='center'></code></p>
<p><code> <td></td><td></td><td></td><td></td><td></td></code></p>
<p><code></tr></code></p>
<p><code><tr bgcolor='lightgray' align='center'></code></p>
<p><code> <td></td><td></td><td></td><td></td><td></td></code></p>
<p><code></tr></code></p>
<p><font face="monospace"><span style="font-size: 11.7px;">
가 되겠네요.
지금 헷갈리시는 부분은, $i와 $j를 함께 생각해서 그렇습니다.
이 코드에서는 $i와 $j가 서로 관여하고 있지 않습니다. 따라서 별개의 값으로 보고 분리해서 생각하시면 됩니다.
로그인 후 평가할 수 있습니다
답변에 대한 댓글 2개
j
jessiwith
6년 전
�
베원
6년 전
@jessiwith 네 이해한게 맞습니다. 이해한 것과 결과물이 같지 않으신가요?
댓글을 작성하려면 로그인이 필요합니다.
댓글을 작성하려면 로그인이 필요합니다.
6년 전
"; 1. 실행
for($j = 0; $j < 5; $j++)
{
echo " "; //2. 5번 실행
}
echo ""; 3. 1번 실행
//여기까지 면 한행이 실행됩니다
루트로 이런것이 5번 나오게 됩니다.
}
?>
로그인 후 평가할 수 있습니다
답변에 대한 댓글 1개
j
jessiwith
6년 전
1. 실행은 1번 실행해서 한줄 만들고 2번 넘어가서 5칸 생성하고 3번 실행해서 줄마감 하고 1-2-3 이렇게 5번 반복 아닌가요?
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
echo "<tr bgcolor='lightgray' align='center'>"; 1. 실행 1번 실행하고
바로 밑에 echo "<td></td>"; //2. 5번 실행 해서 5칸 만들고
echo "</tr> 감싸주고
그다음 다시 1번으로 올라가서 행 생성 그다음에 5칸 생성 이순서가 맞는게 아닌가요?