Die break-Anweisung
Manchmal musst du nicht die ganze Schleife durchlaufen. Wenn du etwas suchst und es findest, gibt es keinen Grund, weiterzusuchen. Die break-Anweisung beendet die Schleife sofort, und das Programm macht mit dem Code nach der Schleife weiter. Du kennst break schon von switch, wo es das switch beendet. In einer Schleife beendet es die Schleife.
Suchen wir die erste Zahl ab 100, die durch 7 teilbar ist. Die Schleife gibt jede Zahl aus, die sie prüft, damit du siehst, wo sie anhält:
for (int zahl = 100; zahl < 200; zahl++) {
printf("Prüfe %d\n", zahl);
if (zahl % 7 == 0) {
printf("Erstes Vielfaches von 7: %d\n", zahl);
break;
}
}
printf("Fertig\n");Prüfe 100
Prüfe 101
Prüfe 102
Prüfe 103
Prüfe 104
Prüfe 105
Erstes Vielfaches von 7: 105
FertigDie Bedingung zahl % 7 == 0 ist wahr, wenn der Rest bei der Division durch 7 gleich 0 ist. Bei 105 ist die Bedingung wahr. Das Programm gibt das Ergebnis aus, und break beendet die Schleife: Die Zahlen ab 106 werden nie geprüft, und das Programm macht mit der Zeile weiter, die Fertig ausgibt. Ohne break würde die Schleife bis 199 laufen und alle 14 Vielfachen von 7 ausgeben, nicht nur das erste.
Fast immer steht break in einer if-Anweisung. Allein würde es die Schleife schon im allerersten Durchlauf beenden. break funktioniert in while- und for-Schleifen gleich.
Oft musst du auch nach der Schleife wissen, was du gefunden hast. Speichere es dann in einer Variablen, die vor der Schleife erstellt wird. Was ist die kleinste ganze Zahl, deren Quadrat größer als 500 ist?
int gefunden = 0;
for (int n = 1; n <= 100; n++) {
if (n * n > 500) {
gefunden = n;
break;
}
}
printf("Kleinste: %d\n", gefunden);
printf("Ihr Quadrat: %d\n", gefunden * gefunden);Kleinste: 23
Ihr Quadrat: 52922 * 22 ist 484, das reicht nicht, aber 23 * 23 ist 529. Dank break behält gefunden die erste Zahl, die groß genug ist. Ohne break würde die Schleife weiterlaufen, auch jede größere Zahl speichern, und gefunden wäre am Ende 100.
So schreibst du es:
Anweisungen
- 1
In einem Spiel hast du 200 Münzen und verdienst jeden Tag 50 dazu. Du sparst auf ein Schwert, das 590 Münzen kostet. Die Schleife im Editor gibt aus, wie viele Münzen du an jedem der nächsten 14 Tage hast. Füge in der Schleife unter der Zeile, die die Münzen ausgibt, eine
if-Anweisung hinzu, dieTag 8: Du kannst das Schwert kaufen!(mit der Nummer des Tages) ausgibt, wenn du mindestens 590 Münzen hast. Führe das Programm aus: Die Meldung erscheint an jedem Tag ab Tag 8, aber du willst nur den ersten Tag wissen. - 2
Füge dem Block der
if-Anweisung nach der Ausgabebreakhinzu, damit die Schleife am ersten Tag anhält, an dem du das Schwert kaufen kannst. Jetzt endet die Ausgabe mitTag 8: 600 MünzenundTag 8: Du kannst das Schwert kaufen!.