break

Die break-Anweisung bewirkt einen sofortigen Sprung zum Ende der aktuellen for-, while- oder do-while-Schleife oder der aktuellen switch-Struktur.

#include <stdio.h> int main(){ int i = 0; switch(i){ case 0: printf("number starts with %d.\n", i); break; default: printf("Something went wrong.\n", i); } for(i = 1; i < 10; ++i){ printf("number is %d.\n", i); if(i == 2){break;} } ++i; while(i < 10){ printf("number is %d.\n", i); if(i == 5){break;} ++i; } ++i; do { printf("number is %d.\n", i); if(i == 8){break;} ++i; } while(i < 10); printf("Finished.\n"); return 0; }

number starts with 0. number is 1. number is 2. number is 3. number is 4. number is 5. number is 6. number is 7. number is 8. Finished.

Siehe auch for, while, do-while, switch, continue

Details

Die break-Anweisung ist nur innerhalb von Schleifen und der switch-Struktur erlaubt. Bei jeder for-, while- oder do-while-Schleife oder switch-Struktur fügt der Compiler am Ende der Struktur ein künstliches Label ein, zu dem wie bei der goto-Anweisung einfach gesprungen wird.

Eine break-Anweisung springt immer zum Ende der aktuellen, also innersten Schleife oder switch-Struktur:

#include <stdio.h> int main(){ int x, y; for(y=0; y<3; ++y){ for(x=0; x<3; ++x){ printf("x=%d y=%d\n", x, y); break; } } printf("Finished.\n"); return 0; }

x=0 y=0 x=0 y=1 x=0 y=2 Finished.

Vorsicht ist geboten, wenn innerhalb einer Schleife Speicher alloziiert wird. Durch eine break-Anweisung kann es passieren, dass man vergisst, den Speicher wieder freizugeben.