wiederholung:kontrollstrukturen
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
wiederholung:kontrollstrukturen [2022/11/12 14:52] – [Beispiel:] Martin Pabst | wiederholung:kontrollstrukturen [2022/11/12 15:49] (aktuell) – [A. while-Loop] Martin Pabst | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
====== Kontrollstrukturen ====== | ====== Kontrollstrukturen ====== | ||
- | ===== Wiederholung mit while ===== | + | ===== A. while-loop ===== |
- | ==== Beispiel: ==== | + | ==== Beispiel |
< | < | ||
Zeile 30: | Zeile 30: | ||
Kurz: Der Block in geschweiften Klammern wird so lange immer wieder ausgeführt, | Kurz: Der Block in geschweiften Klammern wird so lange immer wieder ausgeführt, | ||
</ | </ | ||
+ | |||
+ | |||
+ | ==== Beispiel 2: Zweierpotenzen ==== | ||
+ | Oft ist es nützlich, noch zusätzliche Variablen zu deklarieren, | ||
+ | < | ||
+ | <div class=" | ||
+ | <script type=" | ||
+ | int i = 0; | ||
+ | int zp = 1; | ||
+ | |||
+ | while(i <= 10){ | ||
+ | |||
+ | | ||
+ | | ||
+ | zp = zp * 2; | ||
+ | |||
+ | } | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | </ | ||
==== Aufgaben ==== | ==== Aufgaben ==== | ||
[[.aufgabenwhile: | [[.aufgabenwhile: | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ===== B. Die for-loop===== | ||
+ | Die '' | ||
+ | * Zum bloßen Zählen ist sie sehr umständlich, | ||
+ | <code learnj> | ||
+ | int i = 0; // Deklaration der Zählvariable | ||
+ | while(i <= 10){ // Bedingung | ||
+ | // Anweisungen | ||
+ | | ||
+ | } | ||
+ | </ | ||
+ | * Oft stehen zwischen der Deklaration der Zählvariable und der Bedingung sowie zwischen der Bedingung und der Erhöhung der Zählvariable sehr viele Anweisungen und es ist schwer, "auf einen Blick" zu erfassen, wie oft wiederholt wird und welche Werte die Zählvariable bei jedem Wiederholungsschritt annimmt. | ||
+ | |||
+ | Für alle Anwendungsfälle, | ||
+ | |||
+ | ^ While-loop ^ For-loop ^ | ||
+ | | <code java> | ||
+ | int i = 1; | ||
+ | while(i <= 10){ | ||
+ | // Anweisungen | ||
+ | i++; | ||
+ | } | ||
+ | </ | ||
+ | for(int i = 1; i <= 10; i++){ | ||
+ | // Anweisungen | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | <WRAP center round info 100%> | ||
+ | Die '' | ||
+ | <code learnj> | ||
+ | // Anweisungen | ||
+ | } | ||
+ | </ | ||
+ | * Die **Startanweisung** wird genau 1-mal zu Beginn aufgerufen. | ||
+ | * Die **Bedingung** wird vor jedem Wiederholungsschritt ausgewertet. Ist ihr Wert '' | ||
+ | * Die **Anweisung am Ende jedes Wiederholungsschrittes** wird am Ende jedes Wiederholungsschrittes ausgeführt. | ||
+ | Für Einsteiger ist die '' | ||
+ | <code learnj> | ||
+ | for(int i = 1; i <= 10; i++){ | ||
+ | // Anweisungen | ||
+ | } | ||
+ | </ | ||
+ | Dieses Muster (das in diesem Fall die Anweisungen für '' | ||
+ | </ | ||
+ | |||
+ | ==== Beispiel 3: Zählen mit " | ||
+ | Wir schreiben den Text "Hallo Welt!" 10-mal untereinander in die Ausgabe. Mit der Variablen '' | ||
+ | < | ||
+ | |||
+ | <div class=" | ||
+ | |||
+ | <script type=" | ||
+ | for(int i = 1; i <= 10; i++){ | ||
+ | | ||
+ | } | ||
+ | println(" | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | </ | ||
+ | |||
+ | == Erklärung == | ||
+ | Die '' | ||
+ | ^Anweisung^Erklärung^Wert von '' | ||
+ | |'' | ||
+ | |Prüfe: Ist '' | ||
+ | |'' | ||
+ | |'' | ||
+ | |Prüfe: Ist '' | ||
+ | |'' | ||
+ | |'' | ||
+ | |||
+ | usw... \\ \\ Die letzten Schritte sehen so aus: | ||
+ | |'' | ||
+ | |'' | ||
+ | |Prüfe: Ist '' | ||
+ | |'' | ||
+ | |'' | ||
+ | |Prüfe: Ist '' | ||
+ | |'' | ||
+ | |||
+ | |||
+ | ==== Beispiel 4: Zählen im Dreierschritt ==== | ||
+ | |||
+ | < | ||
+ | |||
+ | <div class=" | ||
+ | |||
+ | <script type=" | ||
+ | println(" | ||
+ | for(int n = 3; n <= 30; n += 3){ | ||
+ | | ||
+ | } | ||
+ | println(" | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | </ | ||
+ | <WRAP center round tip 60%> | ||
+ | Du erinnerst Dich sicher: '' | ||
+ | </ | ||
+ | |||
+ | |||
+ | ==== Beispiel 5: Berechnung von 8! ==== | ||
+ | <WRAP center round tip 80%> | ||
+ | **Berechnung von Fakultäten** \\ \\ | ||
+ | Die **Faktultät** einer Zahl $n \in \mathbb{N}$, | ||
+ | $$n! = 1 \cdot 2 \cdot 3 \cdot 4 \cdot \ldots | ||
+ | Es ist beispielsweise $5! = 1 \cdot 2 \cdot 3 \cdot 4 \cdot 5 = 120$. | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | |||
+ | <div class=" | ||
+ | |||
+ | <script type=" | ||
+ | int zahl = 8; | ||
+ | int fakultät = 1; | ||
+ | |||
+ | for(int i = 1; i <= zahl; i++){ | ||
+ | | ||
+ | } | ||
+ | |||
+ | println(zahl + "! = " + fakultät); | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | Probiere das Programm wieder in Einzelschritten aus und schau' Dir die Belegung der Variablen nach jedem Schritt an! | ||
+ | * Du kannst die '' | ||
+ | * Warum wird der Variablen '' | ||
+ | |||
+ | ==== Aufgaben zur for-Loop ==== | ||
+ | [[.aufgabenfor: |
wiederholung/kontrollstrukturen.1668264722.txt.gz · Zuletzt geändert: 2022/11/12 14:52 von Martin Pabst