C++ For-Loops einfach erklärt
For-Loops, die im Deutschen auch For-Schleifen genannt werden, sind ein grundlegendes Konzept der meisten Programmiersprachen. Sie dienen dazu, Codeblöcke wiederholt auszuführen. Es gibt verschiedene Varianten von C++ For-Schleifen, die jedoch allesamt ähnlich funktionieren.
- Flexibel: Hosting, das jedem Website-Traffic standhält
- Verlässlich: Inklusive 24/7-Support und persönlicher Beratung
- Sicher: Kostenloses SSL-Zertifikat, DDoS-Schutz und Backups
Wie funktionieren C++ For-Loops?
Bei einer For-Schleife handelt es sich um eine der wichtigsten Kontrollstrukturen innerhalb der Programmierung. Sie ermöglicht es Entwicklerinnen und Entwicklern, bestimmte Codeblöcke mehrfach auszuführen. Aus iterativen Programmiersprachen sind derartige Schleifenkonstrukte nicht wegzudenken, so finden Sie etwa Java-For-Loops genauso wie Python-For-Schleifen. Andere, vor allem funktionale Programmiersprachen arbeiten statt mit Schleifen mit dem Konzept der Rekursion.
C++ For-Loops
Die gängigsten C++ For-Schleifen bestehen aus drei wesentlichen Elementen:
- Initialisierungsteil: Hier wird die Schleifenvariable initialisiert. Das bedeutet, dass ihr ein Startwert zugewiesen wird.
- Bedingungsteil: Hier wird eine Bedingung überprüft. Solange diese Bedingung zutrifft, wird der Schleifenrumpf ausgeführt.
- Anweisungsteil: Hier können Sie eine beliebige Anweisung formulieren. Im Normalfall wird die Schleifenvariable de- oder inkrementiert.
All diese Elemente werden durch Semikola getrennt im Schleifenkopf angegeben und somit vollzogen, bevor der eigentliche Schleifenrumpf überhaupt ausgeführt wird. Deshalb spricht man bei den C++ For-Loops auch von kopfgesteuerten Schleifen.
Ein einfaches Beispiel für eine C++ For-Schleife, mit der die Zahlen von 0 bis 5 auf dem Bildschirm ausgegeben werden, könnte wie folgt aussehen:
for (int i = 0; i <= 5; i++) {
std:cout << i << std:endl;
}
Die erste Zeile des obigen Codebeispiels beinhaltet den Schleifenkopf. Hier wird noch einmal deutlich, aus welchen Elementen eine C++ For-Schleife besteht:
- Initialisierungsteil: Mit der Anweisung „int i = 0“ wird eine Variable namens i erstellt, die den Wert 0 zugewiesen bekommt.
- Bedingungsteil: Durch die Angabe der Bedingung „i <= 5“ wird angegeben, dass der Schleifenrumpf so lange ausgeführt werden soll, bis der Wert von i die Zahl 5 überschreitet.
- Anweisungsteil: Innerhalb jedes Schleifendurchlaufs (einer sogenannten Iteration) wird der Wert von i um 1 erhöht.
Es ist möglich, u. a. den Bedingungsteil der For-Loop wegzulassen. In solchen Fällen wird angenommen, dass die Bedingung immer zutrifft, und Sie erzeugen eine Endlosschleife. Manchmal und gezielt eingesetzt können Endlosschleifen hilfreich sein; gerade Anfängerinnen und Anfängern, die C++ lernen, passiert es aber häufig, dass Endlosschleifen aus Versehen produziert werden und so für fehlerhaftes Programmverhalten sorgen.
C++ Foreach-Loops
Neben den bereits gezeigten For-Schleifen gibt es in C++ seit C++11 eine weitere Schleifenform, die ebenfalls mit dem Schlüsselwort „for“ eingeleitet wird. In anderen Programmiersprachen wie PHP oder C# bzw. C++++ sind derartige Konstrukte auch als Foreach-Schleifen bekannt. Mit derartigen Schleifen können Sie bequem auf jedes Element einer Datenstruktur zugreifen, ohne Indizierung 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 Schleifenkopfes im Vergleich zum ersten Codebeispiel verändert. Statt Initialisierung, Bedingung und Anweisung finden Sie nun nur noch zwei Bestandteile:
- Element: Hier geben Sie den Datentypen und einen Variablennamen 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 beinhaltet. Innerhalb der C++ For-Schleife wurde dann mithilfe der Variable namens „element“ jedes Element des Arrays betrachtet und im Schleifenrumpf auf dem Bildschirm ausgegeben.
Nutzen Sie den IONOS Webspace, um all Ihre C++ Programme online zu bringen. Umfassende Backup-Möglichkeiten sorgen darüber hinaus dafür, dass Ihre Programme jederzeit gegen Datenverlust geschützt sind.
Wofür werden C++ For-Loops eingesetzt?
For-Schleifen werden im Regelfall immer dann eingesetzt, wenn die Anzahl der Schleifendurchläufe im Vorhinein bekannt ist. Möchten Sie beispielsweise alle Vielfachen 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-Algorithmen arbeiten mit For-Schleifen. Der hauptsächliche Vorteil im Vergleich zu While-Schleifen ist die kompaktere Schreibweise. Im Grunde können Sie For-Schleifen allerdings 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 beispielsweise dann passieren, wenn Sie eine Endlosschleife erstellen möchten, die so lange Ganzzahlen auf dem Bildschirm ausgibt, bis eine vom User eingegebene Zahl erreicht wurde. Folgendes Codebeispiel verdeutlicht 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üsselwort, das im obigen Codebeispiel dafür sorgt, dass die Schleife beendet wird, ist break. Mit break wird jede C++-For-Loop sofort beendet. Die Ausführung des Programms macht dann einfach nach der Schleife weiter.
Die continue-Anweisung: Schleifendurchläufe überspringen
Es kann natürlich auch vorkommen, dass Sie nicht direkt die ganze Schleife abbrechen, sondern lediglich einzelne Schleifendurchläufe überspringen möchten. Möchten Sie beispielswiese alle geraden Zahlen bis zur Zahl 100 ausgeben, könnten Sie folgendes Schleifenkonstrukt 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 Codebeispiel das Schlüsselwort „continue“ ins Auge. Es sorgt dafür, dass der aktuelle Schleifendurchlauf abgebrochen und zum nächsten Schleifendurchlauf gesprungen wird. Der Vorteil dieser Anweisung liegt vor allem darin, dass unnötige Berechnungen vermieden werden. Dies verbessert die Effizienz Ihrer Programme.