반복 종료
break문은 반복문에서 반복되고 있는 반복 영역을 즉시 종료 시키기 위하여 break문이 사용 됩니다. 일반적으로 반복문은 조건식을 만족 시키지 못하면 반복이 종료됩니다. 주로 if문과 함께 사용하는 경우가 많습니다.
for문과 while문의 경우 반복 영역 앞에서 반복이 끝나고 do~while문은 반복 영역 뒤에서 반복이 끝납니다.
그런데 , 이렇게 정해진 종료 위치가 아닌 부분이라도 임의로 반복을 종료 시키고 싶다면 break 문을 사용하면 됩니다.
아래 예제를 봅시다.
1.#include <stdio.h>
2.
3.int main(void)
4.{ int i; // 반복 횟수 제어 변수
5. int total = 0; // 1부터 10까지의 합을 누적할 변수
6.
7. for (i = 1; i <= 10; i++) // i는 1부터 10까지 증가하면서 10번 반복
8. {
9. total += i; //total에 i값을 누적
10. if (total > 30) break; // 누적한 값이 30보다크면 반복문 종료 11. }
12. printf("누적 값 : %d\n", total);
13. printf("마지막으로 더한 값 : %d\n", i);
14.
15. return 0;
16.}
반복문은 8~11행까지 입니다. 10행의 break문이 없다면 9행의 i의 값을 순차적으로 total에 더해 가면서 1에서 10까지 의 합을 구하게 됩니다.
그런데 , 10행의 조건식을 만족하면 break문에 의해 반복이 종료합니다. 그리고 12 행에 의해 누적 값을 출력합니다. 즉 , break문을 이용하면 7행의 반복문 종료 조건식에 의하지 않고 반복문의 탈출이 가능하게 됩니다.
주의 사항
break문은 자기가 포함 되어 있는 반복문만 탈출합니다.
아래 예제를 봅시다.
for(....)
{
for(...)
{
....
if (조건식) break ;
}
}
위 코드는 중첩 for문이므로 if문의 조건이 충족되면 자신이 포함되 있는 안쪽의 for문을 벗어나는 것입니다. 바깥쪽의 for문은 빠져 나갈 수 없습니다.
다른 예제도 봅시다.
for(...)
{
...
if(조건식)
{
...
break;
}
}
break문은 자신이 포함된 반복문을 탈출하는 것이므로 if문의 조건식을 만족한다면 for문 전체를 빠져 나갑니다.
무한 반복(무한 루프) 종료
break문은 무한 반복을 종료 시키는 용도로 사용되기도 합니다.
아래 예제를 봅시다.
while(1) //조건식이 항상 참이므로 무한 반복합니다.
{
printf("Hello\n") ;
}
위의 코드를 break를 사용하여 아래와 같이 종료 시킬 수 있다.
number = 0 ;
while(1) // 조건식에 사용된 1은 참을 의미합니다.
{
printf("Hello\n") ;
a++ ;
if(number == 100) break ;
}
number의 값이 100이 되면 break에 의해 while문을 탈출하여 반복이 종료됩니다.