| Labels | ||||
| Expression statements | ||||
| Compound statements | ||||
| Selection statements | ||||
| Iteration statements | ||||
| Jump statements | ||||
break | ||||
Causes the enclosingfor,while ordo-while loop orswitch statement to terminate.
Used when it is otherwise awkward to terminate the loop using the condition expression and conditional statements.
Contents |
attr-spec-seq (optional)break; | |||||||||
| attr-spec-seq | - | (C23) optional list ofattributes, applied to thebreak statement |
Appears only within thestatement of a loop body (while,do-while,for) or within thestatement of aswitch.
After this statement the control is transferred to the statement or declaration immediately following the enclosing loop or switch, as if bygoto.
A break statement cannot be used to break out of multiple nested loops. Thegoto statement may be used for this purpose.
#include <stdio.h> int main(void){int i=2;switch(i){case1:printf("1");case2:printf("2");// i==2, so execution starts at this case labelcase3:printf("3");case4:case5:printf("45");break;// execution of subsequent cases is terminatedcase6:printf("6");}printf("\n"); // Compare outputs from these two nested for loops.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++)// only this loop is exited by break{if(k==2)break;printf("%d%d ", j,k);}}}
Possible output:
234500 01 02 03 04 10 11 12 13 1400 01 10 11
[[fallthrough]](C23) | indicates that the fall through from the previous case label is intentional and should not be diagnosed by a compiler that warns on fall-through (attribute specifier)[edit] |
C++ documentation for break statement | |