(1) break
switch에서는 break;를 했을 때 해당 case에서 탈출했다.
같은 원리로 while과 for에서 break를 쓰면 해당 반복 루프를 탈출하여
다음 코드를 실행한다.
아주 단적인 예제를 보자.
#include <stdio.h>
int main() {
int i = 0;
while (1) {
printf("%d, ", i++);
if (i % 10 == 0) printf("\n");
if (i > 100) break;
}
}
1~100까지의 수를 출력하는 코드이다.
물론 for를 써도 되지만 break를 써먹기 위해 while을 사용하였다.
i가 100보다 커질 때까지 무한 루프를 돌다가 101이 됐을 때 break; 하여 while 루프를 빠져나온다.
물론 for에서도 break;를 사용할 수 있다.
(2) continue
continue는 직역했을 때 "계속하다" 라는 의미를 가진다.
C에서도 그 의미 그대로 쓰인다.
while이나 for의 조건에 상관 없이 그 루틴을 끝낸다.
중요한 것은 반복 루프 자체를 탈출하는 것이 아니라
해당 반복 회차(?)만 끝낸다는 것이다.
즉, 이하 코드만 실행되지 않고 여전히 i++을 하고 다시 코드를 실행한다.
예시로 1~100 범위에서 짝수만 출력하는 코드를 작성했다.
i += 2;와 같이 하는 게 더 편하지만
continue를 써먹기 위해서 1 단위로 반복한다.
#include <stdio.h>
int main() {
for (int i = 1; i < 101; i++) {
if (i % 2) continue;
printf("%3d, ", i);
if (i % 5 == 0) printf("\n");
}
}
i를 2로 나눈 나머지가 0이 아닌, 즉 1이 나와서 조건이 true가 되면 continue하여
아래 printf와 줄바꿈용 if문은 거쳐가지 않는다.
if(i % 2 == 0) {
printf(...);
}
물론 이렇게 if문으로 짝수일 때만 출력하게 만들 수도 있다.
그러나 걸러야 할 경우가 더 많아지거나 한다면
continue 구문을 유용하게 사용할 수 있을 것이다.
끝.
'Programming > C & C++' 카테고리의 다른 글
[C/C++] 10. 포인터 (1) (0) | 2022.03.24 |
---|---|
[C/C++] Cos Pro 1급 모의고사 - 꽃피우기 풀이 (0) | 2022.01.28 |
[C/C++] 9.4강 - switch & break | 제어문, 조건 관리하기 (0) | 2022.01.15 |
[C/C++] 백준 1152번 C++ 풀이 (0) | 2021.09.01 |
[C/C++] 백준 1157번 C++ 풀이 (0) | 2021.08.30 |