Die continue-Anweisung
Die Anweisung continue ist die kleine Schwester von break. Sie beendet nicht die ganze Schleife, sondern nur den aktuellen Durchlauf: Sie überspringt den Rest des Blocks, und die Schleife geht gleich zum nächsten Durchlauf über.
Diese Schleife gibt die Zahlen von 1 bis 10 aus, überspringt aber die Vielfachen von 3:
for (int zahl = 1; zahl <= 10; zahl++) {
if (zahl % 3 == 0) {
continue;
}
std::cout << zahl << std::endl;
}Das gibt aus:
1
2
4
5
7
8
10Für 3, 6 und 9 ist die Bedingung wahr, und continue überspringt die Zeile, die ausgibt. Der Schritt zahl++ wird trotzdem ausgeführt, und die Schleife macht wie gewohnt mit der nächsten Zahl weiter.
Die Anweisung continue steht meistens am Anfang des Blocks und filtert die Elemente heraus, mit denen du dich nicht beschäftigen willst: „Dieses interessiert mich nicht, weiter zum nächsten.“ Der Rest des Blocks behandelt dann nur noch die interessanten.
Sei vorsichtig mit continue in einer while-Schleife. Sie springt direkt zurück zur Bedingung. Steht die Zeile, die den Zähler erhöht, unter continue, wird auch sie übersprungen. Der Zähler ändert sich nicht mehr, und die Schleife bleibt hängen. In einer for-Schleife kann das nicht passieren: Ihr Schritt wird nach jedem Durchlauf ausgeführt, auch nach einem, der mit continue endete, und die bereichsbasierte for-Schleife geht von selbst zum nächsten Element weiter.
So schreibst du es:
Anweisungen
- 1
Dein Handy zählt jeden Tag deine Schritte. Der Vektor
tagesSchritteenthält die Zahlen für sechs Tage, und-1bedeutet, dass das Handy an diesem Tag ausgeschaltet war. Schreibe einefor-Schleife übertagesSchritte. Schreibe am Anfang ihres Blocks einif, das den Wert mitcontinueüberspringt, wenn er-1ist. - 2
Gib nach dem
if, immer noch in der Schleife, den Wert aus. Die Ausgabe ist4200,6100,3800und7500, jeweils in einer eigenen Zeile. - 3
Berechne jetzt die durchschnittliche Zahl der Schritte an den Tagen, die gemessen wurden. Erstelle vor der Schleife die Variablen
summeundtage, beide mit dem Wert0. Addiere in der Schleife unter demifmitcontinueden Wert zusummeund erhöhetageum 1. Gib nach der Schleifesumme / tagealsDurchschnitt: 5400aus. Teile durchtage, nicht durch die Größe des Vektors: Die übersprungenen Tage zählen nicht.