Schleifenmechanismen Flashcards
Struktur von imperativen Schleifen
° Schleifensteuerung:
- Feste Anzahl
- Abhängig von Variablen
- Abhägig von Schleifenbedingung
° Schleifenrumpf:
- Enthält die zu wiederholenden Anweisungen
- Der Schleifenrumpf ist meistens ein Block
- Kann Einfluss auf die Schleifensteuerung nehmen!
Abweisende Schleifen
° wenn der Schleifenrumpf nicht zwangsläufig ausgeführt wird
° Schleifenbedingung wird zuerst geprüft
° auch kopfgesteuerte Schleife genannt
° while oder for-Schleife
Annehmende Schleifen
° wenn der Schleifenrumpf bedingungslos mindestens einmal ausgeführt wird
° auch fuß- oder endgesteuerte Schleife genannt
° Do-While Schleife
Bedingte Schleifen
° Ausführung des Rumpfs wird mit einer logischen Bedingung verknüpft
° Bedingung wird entweder vor (abweisende Schleife) oder nach (annehmende Schleife) jeder Ausführung des Schleifenrumpfes überprüft
° Bedingung wird bei jedem Schleifendurchlauf erneut geprüft, weil bei der Ausführung Einfluss auf das Ergebnis der Prüfung genommen wird
° in Java gibt es nur positive bedingte Schleifen
-> alle bedingten Schleifen in Java werden ausgeführt, solange die Schleifenbedingung zutrifft
-> Schleifen negieren
Zählschleifen
° Anzahl der Wiederholungen steht zu Beginn der Schleife fest
° meist abweisend
° verfügen meist über einen Schleifenzähler
° Schleifenzähler kann auch im Schleifenrumpf verwendet werden
While-Schleife
° positiv bedingt
° abweisend
while (boolean_expression)
{
statement;
}
Do-While-Schleife
° positiv bedingt
° endgesteuert
° annehmende Schleifen
° do leitet Anweisungsblock ein und wird beingungslos ausgeführt
° danach kommt der while-Teil mit der Abbruchbedingung (unten)
do { statement; } while (boolean_expression)
For-Schleife
° positiv bedingt
° abweisend
° ermöglicht unter anderem Zählschleifen
° Init_Expr: wird einmalig zu Beginn der Schleife ausgeführt
° Bool_Expr: Bedingung, die für ein Ausführen des Rumpfes geprüft wird
° Update_Expr: Nach der Ausführung des Schleifenrumpfes wird ein Update ausgeführt
for ([Init_Expr]; [Bool_Expr]; [Update_Expr])
{
statement;
}
for (int i = 0; i < 10; ++i)
{
System.out.println(i + “ ist eine Ziffer.”);
}
Endlosschleifen
° Schleifenbedingung ist einfach falsch gewählt
while (true) { // endlos wiederholt }
for ( ; ; );
Debugger
° Werkzeug um Programmierfehler zu finden
° Unterbricht die Programmausführung an Haltepunkten
° Schrittweise Ausführung von Programmzeilen
°Einsicht in Variablenbelegung zur Laufzeit