반복문 안에서 사용되는 continue 명령은 뒤의 모든 실행문을 무시하고 반복문의 처음으로 돌아가게 된다.
반복명령어(for, do, while) {명령문1;continue;명령문2;} |
위에서 프로그램이 continue를 만나면 아래의 명령문2를 수행하지 않고 반복문의 다음 단계로 돌아간다. for문의 경우 변환문을 실행한 후 조건 검사를 하여 참이면 다시 반복을 시작할 것이고 while문은 조건 검사를 수행할 것이다.
for (int k=0; k<10; k++) {printf(“Hi “);continue;printf(“there. “);} | int k=0;while(k++ <= 10) {printf(“Hi “);continue;printf(“there. “);} |
이 예제를 수행하면 첫 번째 printf() 함수만 실행되므로 “Hi “만 열 번 화면에 출력될 것이다. continue 명령에 의해서 그 뒤의 printf()는 실행되지 않기 때문이다.
보통은 조건문과 조합하여 특정 조건이 만족되면 반복문의 시작으로 되돌아가게끔 하는데 사용한다. 다음 예제는 1000 이하의 가장 큰 소수(prime number)를 구하는 것이다.
#include <stdio.h>int main(){int ia;for(ia = 1000; ia>=3; ia--) {int ib = 1;while(++ib<ia) {if (ia%ib == 0) break;}if (ib<ia) continue; // 소수가 아님. 다음으로break; // 소수이므로 빠져나감.}printf("%d",ia);} |
997
|
반복 변수 ia가 1000 부터 시작하여 1씩 감소하면서 그 수 가 소수인지 아닌지를 판별하는 것이다. while 반복문으로 2부터 ia-1 까지의 수로 모두 나눠보고 중간에 나누어 떨어지는 경우가 있다면 반복문을 종료한다. 만약 ia가 소수가 아니라면 ib<ia 이 참이므로 다음 수로 넘어간다. 아니라면 (즉, ia가 소수라면) for 반복문을 빠져나와서 결과를 표시한다.
break문이 반복문을 완전히 빠져나가게 하는 것이고 continue문은 반복문을 계속 수행하게 한다는 것을 잘 구별해야 한다.
C++ 강좌 전체 목록 >>>
댓글 없음:
댓글 쓰기