For-Loops, die im Deutschen auch For-Schleifen genannt werden, sind ein grund­le­gen­des Konzept der meisten Pro­gram­mier­spra­chen. Sie dienen dazu, Code­blö­cke wie­der­holt aus­zu­füh­ren. Es gibt ver­schie­de­ne Varianten von C++ For-Schleifen, die jedoch allesamt ähnlich funk­tio­nie­ren.

Web­hos­ting
Das beste Web­hos­ting zum Spit­zen­preis
  • 3x schneller und 60 % günstiger
  • Maximale Ver­füg­bar­keit mit > 99.99 %
  • Nur bei IONOS: Bis zu 500 GB Spei­cher­platz inklusive

Wie funk­tio­nie­ren C++ For-Loops?

Bei einer For-Schleife handelt es sich um eine der wich­tigs­ten Kon­troll­struk­tu­ren innerhalb der Pro­gram­mie­rung. Sie er­mög­licht es Ent­wick­le­rin­nen und Ent­wick­lern, bestimmte Code­blö­cke mehrfach aus­zu­füh­ren. Aus ite­ra­ti­ven Pro­gram­mier­spra­chen sind derartige Schlei­fen­kon­struk­te nicht weg­zu­den­ken, so finden Sie etwa Java-For-Loops genauso wie Python-For-Schleifen. Andere, vor allem funk­tio­na­le Pro­gram­mier­spra­chen arbeiten statt mit Schleifen mit dem Konzept der Rekursion.

C++ For-Loops

Die gän­gigs­ten C++ For-Schleifen bestehen aus drei we­sent­li­chen Elementen:

  • In­itia­li­sie­rungs­teil: Hier wird die Schlei­fen­va­ria­ble in­itia­li­siert. Das bedeutet, dass ihr ein Startwert zu­ge­wie­sen wird.
  • Be­din­gungs­teil: Hier wird eine Bedingung überprüft. Solange diese Bedingung zutrifft, wird der Schlei­fen­rumpf aus­ge­führt.
  • An­wei­sungs­teil: Hier können Sie eine beliebige Anweisung for­mu­lie­ren. Im Nor­mal­fall wird die Schlei­fen­va­ria­ble de- oder in­kre­men­tiert.

All diese Elemente werden durch Semikola getrennt im Schlei­fen­kopf angegeben und somit vollzogen, bevor der ei­gent­li­che Schlei­fen­rumpf überhaupt aus­ge­führt wird. Deshalb spricht man bei den C++ For-Loops auch von kopf­ge­steu­er­ten Schleifen.

Ein einfaches Beispiel für eine C++ For-Schleife, mit der die Zahlen von 0 bis 5 auf dem Bild­schirm aus­ge­ge­ben werden, könnte wie folgt aussehen:

for (int i = 0; i <= 5; i++) {
	std:cout << i << std:endl;
}

Die erste Zeile des obigen Code­bei­spiels be­inhal­tet den Schlei­fen­kopf. Hier wird noch einmal deutlich, aus welchen Elementen eine C++ For-Schleife besteht:

  • In­itia­li­sie­rungs­teil: Mit der Anweisung „int i = 0“ wird eine Variable namens i erstellt, die den Wert 0 zu­ge­wie­sen bekommt.
  • Be­din­gungs­teil: Durch die Angabe der Bedingung „i <= 5“ wird angegeben, dass der Schlei­fen­rumpf so lange aus­ge­führt werden soll, bis der Wert von i die Zahl 5 über­schrei­tet.
  • An­wei­sungs­teil: Innerhalb jedes Schlei­fen­durch­laufs (einer so­ge­nann­ten Iteration) wird der Wert von i um 1 erhöht.

Es ist möglich, u. a. den Be­din­gungs­teil der For-Loop weg­zu­las­sen. In solchen Fällen wird an­ge­nom­men, dass die Bedingung immer zutrifft, und Sie erzeugen eine End­los­schlei­fe. Manchmal und gezielt ein­ge­setzt können End­los­schlei­fen hilfreich sein; gerade An­fän­ge­rin­nen und Anfängern, die C++ lernen, passiert es aber häufig, dass End­los­schlei­fen aus Versehen pro­du­ziert werden und so für feh­ler­haf­tes Pro­gramm­ver­hal­ten sorgen.

C++ Foreach-Loops

Neben den bereits gezeigten For-Schleifen gibt es in C++ seit C++11 eine weitere Schlei­fen­form, die ebenfalls mit dem Schlüs­sel­wort „for“ ein­ge­lei­tet wird. In anderen Pro­gram­mier­spra­chen wie PHP oder C# bzw. C++++ sind derartige Kon­struk­te auch als Foreach-Schleifen bekannt. Mit der­ar­ti­gen Schleifen können Sie bequem auf jedes Element einer Da­ten­struk­tur zugreifen, ohne In­di­zie­rung verwenden zu müssen. Auch hier hilft ein Beispiel, das die Zahlen zwischen 0 und 5 ausgibt:

int intArr[] = {0, 1, 2, 3, 4, 5};
for (int element: intArr) {
	std:cout << element << std:endl;
}

Wie Sie sehen, hat sich der Aufbau des Schlei­fen­kop­fes im Vergleich zum ersten Code­bei­spiel verändert. Statt In­itia­li­sie­rung, Bedingung und Anweisung finden Sie nun nur noch zwei Be­stand­tei­le:

  • Element: Hier geben Sie den Da­ten­ty­pen und einen Va­ria­blen­na­men an.
  • Container: Hier geben Sie an, über welchen Container iteriert werden soll.

In unserem Fall wurde zunächst ein Array erstellt, das die Zahlen von 0 bis 5 be­inhal­tet. Innerhalb der C++ For-Schleife wurde dann mithilfe der Variable namens „element“ jedes Element des Arrays be­trach­tet und im Schlei­fen­rumpf auf dem Bild­schirm aus­ge­ge­ben.

Tipp

Nutzen Sie den IONOS Webspace, um all Ihre C++ Programme online zu bringen. Um­fas­sen­de Backup-Mög­lich­kei­ten sorgen darüber hinaus dafür, dass Ihre Programme jederzeit gegen Da­ten­ver­lust geschützt sind.

Wofür werden C++ For-Loops ein­ge­setzt?

For-Schleifen werden im Regelfall immer dann ein­ge­setzt, wenn die Anzahl der Schlei­fen­durch­läu­fe im Vorhinein bekannt ist. Möchten Sie bei­spiels­wei­se alle Viel­fa­chen der Zahl 2 bis 100 ausgeben, könnte Ihre C++ For-Schleife wie folgt aussehen:

for (int i = 2; i <= 100; i+=2) {
	std:cout << i << std:endl;
}

Auch viele bekannte Sortier-Al­go­rith­men arbeiten mit For-Schleifen. Der haupt­säch­li­che Vorteil im Vergleich zu While-Schleifen ist die kom­pak­te­re Schreib­wei­se. Im Grunde können Sie For-Schleifen al­ler­dings jederzeit durch While-Schleifen ersetzen.

Die break-Anweisung – Schleifen abbrechen

Es kann vorkommen, dass Sie Ihre C++ For-Loop vorzeitig verlassen möchten. Das kann bei­spiels­wei­se dann passieren, wenn Sie eine End­los­schlei­fe erstellen möchten, die so lange Ganz­zah­len auf dem Bild­schirm ausgibt, bis eine vom User ein­ge­ge­be­ne Zahl erreicht wurde. Folgendes Code­bei­spiel ver­deut­licht die Situation:

int i = 0;
int benutzereingabe = 0;
// User gibt eine Zahl ein, die der Variable namens benutzereingabe zugewiesen wird
std::cin >> benutzereingabe
for (;;) {
	std:cout << i << std:endl;
	++i;
	// Abbruch, wenn die Schleifenvariable größer als die vom User eingegebene Zahl ist
	if (i > benutzereingabe) {
		break;
}
}

Das Schlüs­sel­wort, das im obigen Code­bei­spiel dafür sorgt, dass die Schleife beendet wird, ist break. Mit break wird jede C++-For-Loop sofort beendet. Die Aus­füh­rung des Programms macht dann einfach nach der Schleife weiter.

Die continue-Anweisung: Schlei­fen­durch­läu­fe über­sprin­gen

Es kann natürlich auch vorkommen, dass Sie nicht direkt die ganze Schleife abbrechen, sondern lediglich einzelne Schlei­fen­durch­läu­fe über­sprin­gen möchten. Möchten Sie bei­spiels­wie­se alle geraden Zahlen bis zur Zahl 100 ausgeben, könnten Sie folgendes Schlei­fen­kon­strukt anwenden:

for (int i = 0; i <= 100; i++) {
// Zur nächsten Iteration springen, wenn Zahl ungerade ist
if (i % 2 == 1) {
		continue;
}
std:cout << i << std:endl;
}

Sicher fällt Ihnen im Code­bei­spiel das Schlüs­sel­wort „continue“ ins Auge. Es sorgt dafür, dass der aktuelle Schlei­fen­durch­lauf ab­ge­bro­chen und zum nächsten Schlei­fen­durch­lauf ge­sprun­gen wird. Der Vorteil dieser Anweisung liegt vor allem darin, dass unnötige Be­rech­nun­gen vermieden werden. Dies ver­bes­sert die Effizienz Ihrer Programme.

Zum Hauptmenü