OneDev

[C] 14. 반복문 탈출 - break / continue 본문

Language/C

[C] 14. 반복문 탈출 - break / continue

one_dev 2022. 7. 23. 16:51

앞선 포스팅에서우리는  for 과 while 반복문을 학습하였다.

반복문에서는 조건식을 통해 해당 반복문을 얼마나 반복할 지 알려주게되는데,

만약 조건식이 항상 참이라면 반복문을 영원히 돌리게된다.

참고로 반복문의 조건식에서 식의 값이 0이 아니거나, 아예 조건문이 명시되지 않은 경우 반복문은 조건을 항상 참이라 인식한다.

for(int i = 3, i > 1;i++) // 조건식이 항상 참인 경우
for(;;) // 조건식이 아예 명시되지 않은 경우

// 위 두 경우 모두 반복문이 끝나지 않는 루프에 빠지게 된다

1. break

break 는 이러한 루프를 빠져나가기 위한 명령어 이다.

break 는 실행되기만 하면 조건에 상관 없이 반복문을 탈출하게 된다.

(즉, break 아래의 내용들은 실행되지 않는다)

#include <stdio.h>

int main(){
    for(;;){
    break;
    }
    print("반복문 탈출?\n");
    
    return 0;
}

 

위의 예를 보자.

for 문에서 조건이 명시되지 않았기 때문에  for 문은 조건을 항상 참으로 인식하고 무한루프를 돌아야하지만,

break를 만나 반복문을 바로 탈출하게된다.

따라서 "반복문 탈출?"이라는 문자열을 출력하는 printf("반복문 탈출?\n"); 구문은 실행되지 않고 프로그램이 종료되게 된다.

 

 

2. continue

continue 는 반복문을 빠져나가는 대신 그냥 통과시켜 주는 역할을 한다.

break와 비슷하면서도 다른데, 아래의 예시를 보자.

다음은 1부터 100사이 정수 중에서 5의 배수를 제외한 숫자들을 출력하는 프로그램을 나타낸 것이다.

for(int i =0; i < 100; i++){
    if(i % 5 == 0) continue;   // i 가 5의 배수라면 continue 를 만나 아래의 printf 함수를 실행하지 않는다
    printf("i \n");
}

continue 는 break 처럼 이하의 내용을 모두 무시하지만,  break 가 반복문을 탈출시키는 반면 continue 는 다시 조건문으로 돌아가게 만든다.

 

'Language > C' 카테고리의 다른 글

[C] 16. 배열(Array) (1)  (0) 2022.07.25
[C] 15. 조건문 -switch 문  (0) 2022.07.23
[C] 13. 반복문 - while문/do while  (0) 2022.07.22
[C] 12. 반복문 - for문  (0) 2022.07.21
[C] 11. 논리연산자 - &&, ||, ! / Short Circuit Evaluation(SCE)  (0) 2022.07.20
Comments