C 언어에서 break문과 continue문은 매우 중요한 제어문으로, 반복문과 조건문 내에서 코드 실행 흐름을 제어하는 데 사용됩니다. 각 문법과 동작 방식을 더 자세히 설명드리겠습니다.
1. break 문
정의:
break 문은 현재 실행 중인 반복문(예: for, while, do-while)이나 switch 문을 즉시 종료시키는 제어문입니다. 반복문 내에서 break가 실행되면 그 즉시 반복문을 종료하고, 반복문 이후의 코드로 제어가 넘어갑니다. break는 또한 중첩된 반복문에서 가장 가까운 반복문만 종료합니다.
사용 사례:
- 반복문에서 break 사용
- 반복문을 진행하면서 특정 조건을 만족했을 때 반복을 종료해야 하는 경우 유용합니다.
이 예제에서 i == 5일 때 break 문이 실행되고, 반복문이 종료됩니다. 따라서 0 1 2 3 4까지만 출력되고, 이후 코드인 printf("\nEnd of loop\n")가 실행됩니다.
2.switch 문에서 break 사용
- switch 문에서는 각 case가 끝날 때마다 break를 사용하여 switch 문을 종료시킵니다. 만약 break를 사용하지 않으면, 실행이 다음 case로 이어지며 이를 fall-through라고 합니다.
- num이 2일 때, case 2가 실행되고 break가 실행되어 switch 문을 빠져나갑니다.
3.중첩된 반복문에서 break 사용
- break는 가장 가까운 반복문만 종료시킵니다. 즉, 중첩된 반복문에서 break는 바깥쪽 반복문까지 종료시키지 않으며, 가장 안쪽의 반복문만 빠져나옵니다.
위 예제에서 j == 2일 때 break가 실행되어 안쪽 반복문만 종료되고, 바깥쪽 반복문은 계속 실행됩니다.
2. continue 문
정의:
continue 문은 반복문 내에서 현재 반복을 건너뛰고, 다음 반복으로 넘어가도록 합니다. 즉, continue가 실행되면 그 이후의 코드는 실행되지 않고, 반복문의 조건을 평가하여 다음 반복이 시작됩니다.
사용 사례:
- 반복문에서 continue 사용
- continue는 특정 조건을 만족할 때 이후 코드를 건너뛰고 반복문을 계속할 때 유용합니다.
여기서 i가 짝수일 경우 continue 문이 실행되며, printf가 건너뛰어지고 홀수만 출력됩니다.
2.while 문에서 continue 사용
- while 문에서도 continue를 사용할 수 있습니다. continue는 조건식을 다시 평가하여 반복을 계속 진행시킵니다.
3.do-while 문에서 continue 사용
- do-while 문에서도 continue가 동일하게 동작합니다. continue가 실행되면 do-while 문에서 조건식을 다시 평가합니다.
4.중첩된 반복문에서 continue 사용
- continue 문은 가장 가까운 반복문에서만 적용됩니다. 중첩된 반복문에서는 특정 조건에서 바깥쪽 반복문을 건너뛰지 않고, 안쪽 반복문만 건너뛰게 됩니다.
break와 continue의 차이점
구분 break continue
역할 | 반복문을 즉시 종료 | 현재 반복을 건너뛰고, 조건을 재평가하여 다음 반복으로 넘어감 |
사용 위치 | 반복문, switch 문 | 반복문 |
제어 흐름 | 반복문 또는 switch 문을 종료시킴 | 현재 반복을 건너뛰고, 다음 반복을 진행하도록 함 |
주로 사용되는 경우 | 반복문을 중단하고 종료하고 싶을 때 | 반복문 내에서 일부 조건을 건너뛰고 싶을 때 |
결론:
- break는 반복문이나 switch 문을 중단시키며, continue는 현재 반복을 건너뛰고 다음 반복으로 넘어가도록 합니다.
- break와 continue는 반복문과 조건문 내에서 코드 흐름을 제어하는 데 매우 유용합니다. break는 반복문을 완전히 종료하는 데 사용하고, continue는 반복문 내에서 조건에 맞지 않거나 불필요한 작업을 건너뛰고자 할 때 사용합니다.