반응형

for( i = 0 ; i < 10 ; ++i )

{

    if( i == 3 )

        continue;

    if( i == 5 )

        break;

    printf( "%d\n", i )

}


이런 소스가 있다고할때, 원래는 i가 0부터 9까지 10번 반복이 됩니다.

중간에 if구문에 걸리지 않는다면, 0부터 9까지 순차적으로 숫자가 출력 되겠지요,

i == 0 일떄는 두개의 if문 어디에도 걸리지 않고, 그 다음 문장인 printf문에 의해

0   <==  출력됩니다.

i == 1  일때도

1   <==  출력됩니다.

i == 2 일떄도

2   <== 출력됩니다.


i == 3 일때는 첫번째 if문에 걸리겠군요  자 if문에 걸렸으니 해당 명령을 수행해야지요,

조건이 맞을떄는 continue라고 되어있네요,

반복문 수행시 continue를 만나면, 그 아래 행을 수행하지 않고, 다음 조건으로 계속하게 됩니다.

continue문에 의해 진행되면서 i는 ++i에 의해 1이 증가되고 다시 4부터 비교하게 됩니다.


i == 4  가 되었네요  역시 앞과 마찬가지로 조건문에 걸리지 않으므로

4   <== 출력됩니다.


i == 5  이때는 두번째 조건문에 의해 break 가 되겠네요,

break 문은 해당 break를 감싸고 있는 가장 작은 반복 문을 탈출하게 됩니다.

break 문은 for문에 감싸져 있으므로, i 가 9가 되지 않아도 즉시 탈출하겠군요,


그래서 결과적으로 출력은

1

2

4

까지 찍히게 됩니다.

반응형

'프로그래밍' 카테고리의 다른 글

이진 탐색 트리  (0) 2008.04.28
hungarian prefix  (0) 2008.04.26
argc, argv에 대해..  (0) 2008.04.25
공용체, 열거형 상수, typedef문  (0) 2008.04.25
C언어에서 실수형의 출력 내용이 정확하지 않은 이유  (0) 2008.04.25

+ Recent posts