break문과 continue문
지금까지 for, while, do ~ while 문을 이용하여 특정 구문을 반복하여 실행할 수 있었고
무한히 반복하여 수행할 수 있는 무한 반복문 또한 학습했다.
그렇다면 이제 특정한 조건에 대해 반복문을 제어할 수 있는 break 구문과 continue 구문을 배워보자
break 구문과 continue 구문을 이용하면 반복문을 멈추거나
특정 조건을 만족할 때 반복문을 실행하지 않고 통과하게 할 수도 있다.
-
※ break ※
break 구문은 반복문을 멈추는 구문이다.
일반적으로 특정한 조건일 때 반복문을 멈추기 때문에 주로 함께 사용되는 구문이 if 문이다.
아래의 코드를 봐보자.
-
-
위 코드는 반복 제어 조건이 명시되지 않은 무한 반복문을 사용한다.
하지만
11 행에서 조건을 확인하여 만약 변수 i의 값이 2일 경우에는 break 문을 사용하여 반복문을 정지한다.
-
break 문을 사용할 때 주의할 점이 있는데
바로 break 문은 호출되는 반복문 한 개에 대해서 반복문을 정지하게 된다는 것이다.
만약 내부적으로 중첩하여 여러 개의 반복문을 사용할 때 break 문을 호출하면
break 문을 호출하는 해당 반복문에 대해서만 반복을 정지하고 지속적으로 실행되게 된다.
아래의 예제를 보면 이와 같은 for 문의 특징을 잘 보여주고 있다.
-
-
위 코드는 구구단을 출력하는 예제로 2단부터 5단까지 출력하고 있다.
구구단을 출력하기 위해서 2개의 for 문이 중첩하여 사용되었으며
출력하는 순서는
"2 * 1 = 2", "3 * 1 = 3", "4 * 1 = 4", "5 * 1 = 5"...등으로 출력하게 된다.
하지만
제일 안쪽에 있는 for 문(9행 ~ 13행) 내에서 변수 i의 값이 2일 경우 해당 반복문을 정지하고 있다.
따라서 제일 처음 "2 * 2 = 4"라는 내용이 실행되지 않고 반복문이 멈추게 된다.
2단에서 반복문이 멈췄기 때문에 이후 3단과 4단 5단에서 2를 곱하는 내용은 실행되지 않는다.
하지만
break 문은 호출되는 반복문만 정지하기 때문에 밖에 있는 반복문(7행 ~ 15행)은 여전히 실행되어
"2 * 3 = 6"부터 안쪽에 있는 반복문이 다시 실행되게 된다.
break 문은 for 문에 대해서만 실습했지만 while 및 do ~ while 문 등에서도 동일하게 적용할 수 있다.
추가 설명은 생략하도록 한다.
-
※ continue ※
break 문은 호출되는 반복문을 더는 실행하지 않고 완전히 멈춘 후에 반복문을 탈출하는 구문이다.
반면에 continue 문의 경우 호출되는 시점 이후의 반복 구문을 실행하지 않고
지속적으로 반복문을 실행하는 것이다.
맨 위의 test20.c의 코드를 수정하여 continue 구문을 적용하여 break 구문과 어떻게 다른지
아래의 코드에서 비교해보자.
-
-
위 코드의 내용을 보면 9행에서 변수 i의 값이 2일 경우 continue 구문을 호출하여
이후의 내용(11행)을 수행하지 않고 통과하도록 하고 있다.
따라서 위의 실행 결과에 나와 알다시피
"Hello!!! World~~ [2]"라는 내용이 출력되지 않았을 뿐 여전히 for 문의 반복문이 실행되고 있다.
만약 9행에서 continue 대신 break 문을 호출하면 완전히 반복문이 정지되어 더는 반복 실행이 되지 않았을 것이다.
'시작하지 말았어야 했던 것 > C언어 기본 문법' 카테고리의 다른 글
12. 문자와 문자열 (0) | 2021.02.01 |
---|---|
11. 배열 (0) | 2021.02.01 |
8. 반복문 (0) | 2021.02.01 |
7. 조건문 (0) | 2021.02.01 |
6. 연산자(4) (0) | 2021.02.01 |