break statement - cppreference.com (original) (raw)

Causes the enclosing for, while or do-while loop or switch statement to terminate.

Used when it is otherwise awkward to terminate the loop using the condition expression and conditional statements.

[edit] Syntax

| | | | | ---------------------------------------- | | | | attr-spec-seq (optional) break ; | | | | | | |

attr-spec-seq - (C23) optional list of attributes, applied to the break statement

Appears only within the statement of a loop body (while, do-while, for) or within the statement of a switch.

[edit] Explanation

After this statement the control is transferred to the statement or declaration immediately following the enclosing loop or switch, as if by goto.

[edit] Keywords

break

[edit] Notes

A break statement cannot be used to break out of multiple nested loops. The goto statement may be used for this purpose.

[edit] Example

#include <stdio.h>   int main(void) { int i = 2; switch (i) { case 1: printf("1"); case 2: printf("2"); // i==2, so execution starts at this case label case 3: printf("3"); case 4: case 5: printf("45"); break; // execution of subsequent cases is terminated case 6: 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:

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

[edit] References

[edit] See also

| | 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] | | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | |