for문 ~~질문 합니다 선배님들

for문 ~~질문 합니다 선배님들

QA

for문 ~~질문 합니다 선배님들

본문


<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>
 

 

for문 위에 실행 순서~~ 가 좀 헷갈리는데 알려주시면 감사하겠습니다.

 

이 질문에 댓글 쓰기 :

답변 3

안에서부터 하나씩 해석하시면 됩니다.

 

<td></td>를 5번 반복한다는 명령을 foo 라고 합시다.

그럼 foo는 아래와 같은 코드이겠지요?


for($j=0; $j<5; $j++) {
    echo "<td></td>";
}

 

이 foo를 5번 반복하는 명령을 bar 라고 합니다.

그럼 bar는 아래와 같은 코드이겠지요?


for($i=0; $i<5; $i++) {
    // foo
}

 

자 여기서 bar 코드 안에 빠진 부분을 채워넣어봅시다.


for($i=0; $i<5; $i++) {
    echo "<tr bgcolor='lightgray' align='center'>";
    // foo
    echo "</tr>";
}

 

자 다시 되짚어봅시다.

foo는 <td></td>를 5번 반복하는 코드였습니다.

이 의미를 다시 bar 안에 넣어봅시다.


for($i=0; $i<5; $i++) {
    echo "<tr bgcolor='lightgray' align='center'>";
    // <td></td>를 5번 반복한다.
    echo "</tr>";
}

 

그럼 최종 결과물은

<tr bgcolor='lightgray' align='center'>
    <td></td><td></td><td></td><td></td><td></td>
</tr>
<tr bgcolor='lightgray' align='center'>
    <td></td><td></td><td></td><td></td><td></td>
</tr>
<tr bgcolor='lightgray' align='center'>
    <td></td><td></td><td></td><td></td><td></td>
</tr>
<tr bgcolor='lightgray' align='center'>
    <td></td><td></td><td></td><td></td><td></td>
</tr>
<tr bgcolor='lightgray' align='center'>
    <td></td><td></td><td></td><td></td><td></td>
</tr>

가 되겠네요.

 

지금 헷갈리시는 부분은, $i와 $j를 함께 생각해서 그렇습니다.

이 코드에서는 $i와 $j가 서로 관여하고 있지 않습니다. 따라서 별개의 값으로 보고 분리해서 생각하시면 됩니다.

결과물은 확인했습니다.
echo "<tr bgcolor='lightgray' align='center'>"; 1. 실행  1번 실행하고
바로 밑에                echo "<td></td>"; //2. 5번 실행 해서 5칸 만들고
echo "</tr> 감싸주고
그다음 다시 1번으로 올라가서 행 생성 그다음에 5칸 생성 이순서가 맞는게 아닌가요?

 <?php            
            for ($i = 0; $i < 5 ; $i++)// 5번 실행 5줄을 정의      
            {   
                echo "<tr bgcolor='lightgray' align='center'>"; 1. 실행
                for($j = 0; $j < 5; $j++)
                {
                echo "<td></td>"; //2. 5번 실행 
                }
                echo "</tr>"; 3. 1번 실행 
//여기까지 면 <tr bgcolor='lightgray' align='center'><tr><td></td><td></td><td></td><td></td><td></td></tr> 한행이 실행됩니다 
루트로 이런것이 5번 나오게 됩니다.
            }
            
            ?>
답변을 작성하시기 전에 로그인 해주세요.
전체 122,915 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT