728x90


for 문은 while과 같은 루프입니다. for 구문은 다음과 같은 형식을 가집니다.

for (expr1; expr2; expr3) statement  

for문의 동작 순서는 다음과 같습니다. expr1 이 무조건 한번 실행된 후에 expr2 조건을 검사합니다. expr2가 참이면 statement를 실행하고 statement가 모두 실행되면 expr3를 실행합니다. 만약 expr2가 거짓이라면 더 이상 statement를 실행하지 않고 for문을 빠져나옵니다. ( 뭔말인지 모르시겠죠? ^^;;;; )

소스를 보시면 쉽게 이해하실 수 있을 것입니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<? 
    
/* 아래는 모두 1 부터 10까지 출력하는 프로그램입니다.
        그 차이를 한번씩 생각해 보세요..
        가장 일반적인 방법은 첫번째 방법입니다.
    */
    
    
for ($i=1$i <=10$i++) {
        echo 
$i;
    }
    
    
    for (
$i 1;;$i++) {
        if (
$i >10 ) {
            break; 
// 루프를 빠져나감
        
}
        echo 
$i;
    }

    
$i=1;
    for (;;) { 
        if (
$i 10) {
            break;
        }
        echo 
$i;
        
$i++;
    }

    for ( 
$i 1$i <= 10; print $i,$i++ ) ;
    
//print는 되는데.. echo는 안되네요...
?>


나머지 세 방법은 이렇게도 할 수 있구나 하는 것 정도만 이해하시면 됩니다.


break 문은 위에서 배운 for 와 앞서 배운 while 같은 루프를 빠져나오는 명령입니다. 위의 소스에서 보듯이 (14번째줄) 변수 $i가 10보다 커지면.. break에 의해 for 문을 빠져나오게 됩니다. ( switch 문을 벗어날 때도 break를 씁니다.아래에서 배움)


continue는 break와 달리 루프의 처음으로 돌려 보내는 명령입니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?
$i 
0;
while (
$i++ < 3) { //세번만 실행해보도록 하겠습니다.
     
echo "첫번째 루프<br>\n";
     while (
1) {
        echo 
"  두번째 루프<br>\n";
         while (
1) {
              echo 
"  세번째 루프<br>\n";
              continue 
3;
         }
         echo 
"절대 안나오지롱~<br>\n";
    }
    echo 
"나도 나오게 해줘 제발~ ㅜㅜ<br>\n";
}
?>




위 소스에서 보듯이 (9째줄) continue 다음에 숫자 옵션을 추가하여 루프를 몇 단계 벗어날지도 설정할 수 있습니다. 세단계 루프를 벗어나니까.. 11번째줄과 13번째줄은 절대 프린트가 안되겠죠? ^^


다음은 switch 문을 if 문으로 표현한 것입니다. 소스를 보시면 쉽게 이해되실거예요^^

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?
if ($i == 0) {
    print 
"i 는 0";
}
if (
$i == 1) {
    print 
"i 는 1";
}
if (
$i == 2) {
    print 
"i 는 2";
}

//위의 if 구문과 아래 switch문은 같습니다.

switch (
$i) {
    case 
0:
        print 
"i 는 0";
        break; 
    case 
1:
        print 
"i 는 1";
        break;
    case 
2:
        print 
"i 는 2";
        break;
}
?>


위 소스에서 보듯이 switch 문은 if 문을 여러 개 정렬해놓은 것과 같습니다. 예를 들면 90점은 A 80점은 B 70은 C 같이 등급을 매길 때 유용하게 쓸 수 있습니다. 근데.. 50점 이하는 모두 F를 주고 싶은데.. 귀찮게 50 40 30 .. 모두 case를 만들기가 그렇죠? 이럴 때 default를 쓰면 됩니다. case로 지정안된 모든 값은 default 값으로 정해지는 거죠. case 처럼 default : 이렇게 쓰면 되구요.. break는 쓸 필요가 없습니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?
if ($i == 0) {
    print 
"i 는 0";
}
elseif (
$i == 1) {
    print 
"i 는 1";
}
elseif (
$i == 2) {
    print 
"i 는 2";
}
else {
    print 
"i는 0,1,2가 아니다";
}

switch (
$i) {
    case 
0:
        print 
"i 는 0";
        break; 
    case 
1:
        print 
"i 는 1";
        break;
    case 
2:
        print 
"i 는 2";
        break;
    default :
        print 
"i는 0,1,2 가 아니다";
}
?>


if 구문과 비교하면서 잘 생각해 보세요..^^


728x90
복사했습니다!