Huelsse/Profil Nawi/Java/Java-Turtle - Schleifen unbekannter Anzahl von Wiederholungen
Aus ProgrammingWiki
Wiki-Quelltext dieser Seite.
'''Schleifen mit unbekannter Anzahl von Wiederholungen'''
----
Zur Erinnerung:
Mit einer Zählschleife können Anweisungsblöcke "i-mal" ausgeführt werden, d.h. die Anzahl der Wiederholungen ist bekannt:
* FOR (i = STARTWERT, i < ENDWERT, i++ Erhöhen der Laufvariable ) { Schleifenkörper }
* for (int i = 1; i < 5; i++ ) {turtle.forward(100);turtle.right(90);}
Häufig wird man nicht genau wissen, wie oft man einen bestimmten Zyklus durchlaufen muss:
* Lerne solange fleißig, bis du in einer Mathearbeit die Note 1 bekommst
* Iss Süßigkeiten, bis die Tüte in Größe einer Familienpackung leer ist, damit du nicht umsonst in der Tüte herum suchst, kontrolliere zuerst, ob überhaupt noch etwas drin ist
* Würfe solange, bis du ein Sechs hast
* Gehe solange shoppen, bis dein Konto leer ist, aber überziehe dein Konto nicht!
* Gehe joggen, bis du 20kg abgenommen hast
Für diese Beispiele werden keine Zählschleifen, sondern Schleifen mit einem Testktiterium benötigt.<BR>
Der Test kann einmal am Anfang vor dem Durchlaufen des Schleifenkörpers durchgeführt werden:<BR>
'''* Schleifen mit oberer Abbruchbedingung - while (Testkriterium) { Schleifenkörper }'''<BR>
Der Test kann einmal am Ende nach dem Durchlaufen des Schleifenkörpers durchgeführt werden:<BR>
'''* Schleifen mit unterer Abbruchbedingung - do { Schleifenkörper } while (Testkriterium);<BR>'''
Welche der oberen Beispiele benötigen eine Schleife mit einer oberen oder unteren Abbruchbedingung?<BR>
<BR>
{| border="1" cellspacing="10" cellpadding="10"
|-
| Schleife || Struktogramm || Anzahl der Wiederholungen || minimale Anzahl || Abbruchbedingung
|-
| Zählschleife <BR> for (int i = Start; i < Endwert; i++)<BR>{ Schleifenkörper }
|| [[Bild:Koehler_QUADRAT.png]]
|| i - mal
|| i - mal
|| Bis i den Endwert erreicht hat
|-
| Schleifen mit oberer Abbruchbedingung <BR> while (Testkriterium)<BR> { Schleifenkörper }
|| [[Bild:Koehler_WHILE.png]]
|| unbekannt
|| 0 - mal <BR> z.B. wenn mein Konto bereits überzogen ist
|| Am Scheifenanfang: <BR> erst testen, dann etwas tun!
|-
| Schleifen mit unterer Abbruchbedingung <BR> do { Schleifenkörper }<BR> while (Testkriterium);
|| [[Bild:Koehler_DO.png]]
|| unbekannt
|| 1 - mal <BR> z.B. wenn mein erster Wurf eine Sechs ist
|| Am Scheifenende: <BR> erst etwas tun, dann testen!
|}