반응형
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 |