Schleifen programmieren: Ablauf und Beispiele
Du lernst, wie Schleifen laufen, welche Art zu deinem Plan passt und wie du vorhersagst, was der Computer zeigt.
Kurz gesagt
Eine Schleife lässt den Computer Aufträge wiederholen. Je nach Art prüft sie davor oder danach, ob sie weitermachen soll.
Ein Programm sagt einem Computer, was er tun soll. Eine Anweisung ist dabei ein einzelner Auftrag. Java ist eine Sprache, in der du solche Programme schreiben kannst. Wir lernen drei Schleifenarten aus Java kennen: while, for und do-while.
Deine Lernziele
Ein Durchlauf bedeutet: Die Anweisungen einer Schleife werden einmal ausgeführt. Ein Zähler merkt sich eine Zahl. Eine Ausgabe ist das, was der Computer zeigt. Eine Bedingung ist hier eine Frage mit der Antwort ja oder nein. Ja bedeutet: Die Schleife soll weitermachen.
Wir schreiben ausgedachte Pläne in einfachen Worten. Sie zeigen die Reihenfolge der Java-Schleifen. Sie sind noch keine fertigen Java-Programme zum Eingeben. Ein vorzeitiger Stopp beendet eine Schleife mitten im Ablauf. Zuerst betrachten wir Pläne ohne so einen Stopp.
while prüft zuerst die Frage. Bei ja führt die Schleife ihre Anweisungen aus und prüft erneut. Bei nein endet sie. Ist die Antwort gleich am Anfang nein, werden die Anweisungen ausgelassen.
Bei der hier gezeigten for-Form gehören Start, Frage und Änderung zusammen. Der Start wird einmal ausgeführt. Dann wird geprüft. Bei ja folgen die Anweisungen und danach die Änderung. Anschließend wird erneut geprüft. Bei nein endet die Schleife. Die Änderung kann eine Zahl größer oder kleiner machen.
do-while führt zuerst die Anweisungen aus. Danach prüft die Schleife die Frage. Bei ja beginnt der nächste Durchlauf. Bei nein endet sie. Auch bei einer von Anfang an falschen Bedingung gibt es deshalb einen ersten Durchlauf.
Schleife
Eine Schleife ist ein Teil eines Programms, der Anweisungen wiederholen kann.
Beispiel: Platznummern anzeigen (ausgedachter Plan)
- 1Dieser for-Plan hat keinen vorzeitigen Stopp.
- 2Start: Setze den Zähler auf zwei.
- 3Frage: Ist die Zahl kleiner als fünf?
- 4Bei ja: Zeige die Zahl. Erhöhe sie danach um eins. Prüfe dann erneut.
- 5Bei nein: Beende die Schleife.
- 6Die Ausgaben sind zwei, drei und vier. Danach steht der Zähler auf fünf.
Teste dich
Überlege zuerst: Soll die Frage vor den Anweisungen geprüft werden? Oder sollen die Anweisungen zuerst einmal laufen?
while hilft dir, wenn du vor jedem Durchlauf fragen möchtest. Eine Antwort nein kann schon den ersten Durchlauf verhindern. do-while hilft dir, wenn zuerst ein Durchlauf nötig ist. Die Frage wird dort danach geprüft.
for ist praktisch, wenn du einen Bereich von Zahlen durchgehen möchtest. Das kann etwa das Zählen von eins bis vier sein. Die gezeigte for-Form hat eigene Plätze für Start, Frage und Änderung. Bei unseren Zählplänen mit while oder do-while steht der Start vor der Schleife. Eine nötige Änderung gehört dort zu den wiederholten Anweisungen.
Das ist eine Auswahlhilfe. Andere Schleifenarten lassen sich oft so umbauen, dass sie denselben Auftrag erfüllen.
| Art | Hilfreich für diesen Plan |
|---|---|
| while | Erst fragen. Bei nein die Anweisungen auslassen. |
| for | Mit einem Zähler einen Bereich von Zahlen durchgehen. |
| do-while | Erst ausführen. Danach fragen, ob es weitergeht. |
Merke: Wähle nach dem Ablauf deines Plans. Eine feste Anzahl von Wiederholungen lässt sich gut mit der gezeigten for-Form beschreiben.
Teste dich
Eine Ausgabe ist das, was der Computer zeigt. Um Ausgaben vorherzusagen, gehst du den Plan Anweisung für Anweisung durch. Beginne mit der Zahl am Start. Notiere jede Ausgabe und jede Änderung. Beantworte die Frage mit der Zahl, die gerade im Zähler steht. Bei do-while kommen die Anweisungen vor der ersten Frage.
Eine Endlosschleife wiederholt ihre Anweisungen, ohne von selbst zu enden. Das kann gewollt sein oder ein Fehler im Plan. Eine Änderung am Zähler reicht nicht zum Beenden. Die Frage muss tatsächlich nein ergeben oder ein vorzeitiger Stopp muss erreicht werden.
Ein vorzeitiger Stopp beendet die Schleife mitten im Ablauf. Dafür gibt es in Java den Befehl break. Hinter der beendeten Schleife geht es weiter. Auch eine Schleife mit dauernd gleicher Antwort ja kann durch break enden.
Bei for dürfen Start, Frage und Änderung auch fehlen. Fehlt die Frage, kann keine Antwort nein diese Schleife beenden. Ein erreichter Stopp mit break kann sie trotzdem beenden. Unsere Zählpläne zeigen die for-Form mit allen drei Angaben.
Beispiel: Rückwärts zählen (ausgedachter Plan)
- 1Setze den Zähler auf drei. Es gibt keinen vorzeitigen Stopp.
- 2while: Solange die Zahl größer als null ist, zeige sie und mache sie danach um eins kleiner.
- 3Erster Durchlauf: Zeige drei. Der Zähler wird zwei.
- 4Zweiter Durchlauf: Zeige zwei. Der Zähler wird eins.
- 5Dritter Durchlauf: Zeige eins. Der Zähler wird null.
- 6Die nächste Prüfung ergibt nein. Die Ausgaben sind drei, zwei und eins.
Merke: Prüfe die Frage und mögliche Stopps. Auch eine veränderte Zahl kann die Frage weiter mit ja beantworten.
Teste dich
Eine Zeile verläuft von links nach rechts. Eine Spalte verläuft von oben nach unten. So kannst du Felder ordnen, etwa auf einem Spielplan.
Steht eine Schleife in einer anderen, heißen sie verschachtelte Schleifen. Die Schleife außen heißt äußere Schleife. Die Schleife darin heißt innere Schleife. In unserem Zeilenplan zählt die äußere Schleife die Zeilen. Die innere Schleife zählt die Spalten.
Für jede neue Zeile startet unsere innere Schleife wieder bei Spalte eins. Ohne vorzeitigen Stopp besucht sie alle geplanten Spalten dieser Zeile. Erst danach beginnt die nächste Zeile. Die gesamte Zahl der besuchten Felder kannst du finden, indem du die Felder aller Zeilen zusammenzählst.
Steht break ohne Zusatz in der inneren Schleife, endet diese sofort. Die äußere Schleife kann dann mit der nächsten Zeile weitermachen. Dabei können Spalten ausgelassen werden. In Java kann eine Schleife auch einen Namen bekommen. Mit diesem Namen als Zusatz kann break gezielt auch eine äußere Schleife beenden. Unsere Aufgaben verwenden break ohne Zusatz.
Beispiel: Felder auf einem Spielplan besuchen (ausgedachter Plan)
- 1Außen: Zähle die Zeilen eins bis drei.
- 2Innen: Starte für jede Zeile bei Spalte eins. Zähle bis Spalte zwei.
- 3Zeige bei jedem inneren Durchlauf Zeile und Spalte. Es gibt keinen vorzeitigen Stopp.
- 4Zeile eins: Spalte eins, dann Spalte zwei.
- 5Zeile zwei: Spalte eins, dann Spalte zwei.
- 6Zeile drei: Spalte eins, dann Spalte zwei.
- 7Das sind zusammen sechs besuchte Felder.
Merke: In diesem Zeilenplan startet die innere Schleife für jede Zeile neu. Ohne vorzeitigen Stopp besucht sie jede geplante Spalte.
Teste dich
Alles auf einen Blick
Schleife
while prüft vor den Anweisungen. do-while prüft danach.
In der gezeigten Form läuft der Start einmal. Dann wird geprüft. Bei ja folgen Anweisungen, Änderung und die nächste Prüfung.
for passt gut zum Durchgehen eines Zahlenbereichs. Andere Formen lassen sich oft für denselben Auftrag umbauen.
Eine Änderung am Zähler genügt nicht. Die Frage muss nein ergeben oder ein vorzeitiger Stopp muss erreicht werden.
Für jede neue Zeile startet die innere Schleife wieder bei Spalte eins. Ohne vorzeitigen Stopp besucht sie alle geplanten Spalten.
In Zweierschritten zählen (ausgedachter Plan)
- 1Dieser while-Plan startet mit zwei. Seine Frage lautet: Ist die Zahl kleiner als sieben?
- 2Bei ja: Zeige die Zahl. Erhöhe sie danach um zwei. Prüfe erneut. Es gibt keinen vorzeitigen Stopp.
- 3Zwei ist kleiner als sieben. Zeige zwei. Der Zähler wird vier.
- 4Vier ist kleiner als sieben. Zeige vier. Der Zähler wird sechs.
- 5Sechs ist kleiner als sieben. Zeige sechs. Der Zähler wird acht.
- 6Acht ist nicht kleiner als sieben. Die Schleife endet.
- 7Die Ausgaben sind zwei, vier und sechs.
Fehler finden
Fehler in Zeile 4Die Zahl wechselt zwischen eins und zwei. Beide sind kleiner als drei. Richtig: Nach jeder Änderung lautet die Antwort ja. Ohne vorzeitigen Stopp läuft dieser Plan endlos.
Lückentext
Eine while-Schleife prüft ihre Frage dem Ausführen ihrer Anweisungen. Ein do-while-Plan zeigt das Wort „Start“ und prüft dann seine Frage. Die Antwort ist bei dieser ersten Prüfung nein. Das Wort erscheint . Ein Plan besucht ohne vorzeitigen Stopp zwei Zeilen mit je zwei Feldern. Für jede Zeile beginnt er wieder beim ersten Feld. Insgesamt besucht er Felder.