Namespaces
Variants

break statement

From cppreference.net

해당 for , while 또는 do-while 루프 또는 switch 문 을 종료시킵니다.

조건식과 조건문을 사용하여 루프를 종료하는 것이 어색한 경우 사용됩니다.

목차

구문

attr-spec-seq  (선택 사항) break ;
attr-spec-seq - (C23) break 문에 적용되는 속성 의 선택적 목록

루프 본문의 구문 내부( while , do-while , for ) 또는 switch 구문 내부에서만 나타납니다.

설명

이 문장 이후 제어는 마치 goto 를 사용한 것처럼, 해당 루프나 switch 문을 감싸는 바로 다음 문장이나 선언으로 이동합니다.

키워드

break

참고 사항

break 문은 여러 개의 중첩된 루프를 벗어나는 데 사용할 수 없습니다. 이러한 목적으로는 goto 을 사용할 수 있습니다.

예제

#include <stdio.h>
int main(void)
{
    int i = 2;
    switch (i)
    {
        case 1: printf("1");
        case 2: printf("2");   // i==2이므로 이 case 레이블에서 실행 시작
        case 3: printf("3");
        case 4:
        case 5: printf("45");
                break;         // 이후 case들의 실행이 종료됨
        case 6: printf("6");
    }
    printf("\n");
    // 다음 두 중첩 for 루프의 출력을 비교하십시오.
    for (int j = 0; j < 2; j++)
        for (int k = 0; k < 5; k++)
            printf("%d%d ", j,k);
    printf("\n");
    for (int j = 0; j < 2; j++)
    {
        for (int k = 0; k < 5; k++) // break에 의해 이 루프만 종료됨
        {
            if (k == 2)
                break;
            printf("%d%d ", j,k);
        }
    }
}

가능한 출력:

2345
00 01 02 03 04 10 11 12 13 14
00 01 10 11

참고문헌

  • C17 표준 (ISO/IEC 9899:2018):
  • 6.8.6.3 break 문 (p: 111)
  • C11 표준 (ISO/IEC 9899:2011):
  • 6.8.6.3 break 문 (p: 153)
  • C99 표준 (ISO/IEC 9899:1999):
  • 6.8.6.3 break 문 (p: 138)
  • C89/C90 표준 (ISO/IEC 9899:1990):
  • 3.6.6.3 break 문

참고 항목

(C23)
이전 case 레이블에서의 fallthrough가 의도적이며 fallthrough에 대해 경고하는 컴파일러에 의해 진단되지 않아야 함을 나타냅니다
(속성 지정자)
C++ documentation for break statement