Namespaces
Variants
Actions

break statement

From cppreference.com
< c‎ | language

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

Run this code
#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

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

[edit] See also

(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
Retrieved from "https://en.cppreference.com/mwiki/index.php?title=c/language/break&oldid=155195"

AltStyle によって変換されたページ (->オリジナル) /