Sie sind auf Seite 1von 5

Lernbereich: AEAEAEAE

Lernbereich: A E A E A E A E Modul 04 AB0_ - 1/5

Modul 04

AB0_ - 1/5

Lernbereich: A E A E A E A E Modul 04 AB0_ - 1/5
Lernbereich: A E A E A E A E Modul 04 AB0_ - 1/5

Was versteht man unter Schleifen in der Programmierung ?

Soll eine Anweisung oder eine Anweisungsfolge in einem Softwaresystem mehrfach ausgeführt werden, so nennt man ein solches Konstrukt eine Schleife.

Die einzelnen Schleifentypen unterscheiden sich hauptsächlich dahingehend, wie festgelegt wird, ob und wie oft eine Anweisungsfolge wiederholt wird.

So legt eine Anweisung „schreibe 20 mal, ich soll den Unterricht nicht stören“ fest, dass eine gewisser Schreibvorgang genau 20x durchzuführen ist.

Eine Anweisung „Würfel so lange, bis eine 6 fällt“ lässt hingegen die Anzahl der Wiederholungen offen, nach jeder Ausführung wird geprüft, ob ein gewisses Ereignis eingetreten ist. Es wird aber auf jeden Fall mindestens einmal gewürfelt.

Hingegen lässt die Anweisung „Wenn Du müde bist, dann trinke eine Tasse Kaffee“ auch die Möglichkeit zu, dass kein Kaffee getrunken wird.

Zuletzt gibt es noch Anweisungen der Form „Begrüße alle Gäste“, bei welcher die Anzahl der Wiederholungen von der Gruppe der Gäste determiniert wird.

Lernbereich: AEAEAEAE

Lernbereich: A E A E A E A E Modul 04 AB0_ - 2/5

Modul 04

AB0_ - 2/5

Lernbereich: A E A E A E A E Modul 04 AB0_ - 2/5
Lernbereich: A E A E A E A E Modul 04 AB0_ - 2/5

Nachfolgend sollen diese Schleifentypen etwas formaler beschrieben und ihre Umsetzung in einem Struktogramm bzw. in einem Softwareprogramm erläutert werden.

1. Offene kopfgesteuerte Schleife:

Eine Anweisung „Wenn Du müde bist, dann trinke eine Tasse Kaffee“ besagt, dass der Schleifenrumpf einer offenen kopfgesteuerten Schleife (Kaffee trinken) solange durchlaufen wird wie die formulierte Bedingung (Müdigkeit) wahr ist.

Die Bedingungsprüfung erfolgt stets vor dem Eintritt in den Schleifenrumpf.

Struktogramm:

Konkretes Beispiel

solange Noch müde Kaffee tinken
solange Noch müde
Kaffee tinken

allgemein formuliert

solange Bedingung Anweisungen Bsp.:
solange Bedingung
Anweisungen
Bsp.:

Struktogramm zaehlung

Variable zahl mit dem Wert 0 initialisieren solange zahl kleiner 15 zahl um 5 erhöhen
Variable zahl mit dem Wert 0
initialisieren
solange zahl kleiner 15
zahl um 5 erhöhen
Ausgabe: " zahl hat den
Wert: " + zahl

Die Schleife wird 3 mal durchlaufen, da die Bedingung (zahl kleiner 15) für die Fälle zahl=0, zahl=5 und zahl=10 wahr ist. Für den Fall zahl = 15 ist sie jedoch falsch. Daher wird der Schleifenrumpf nach der Erhöhung der Variablen zahl auf 15 nicht mehr durchlaufen.

Programmcode in Java:

while (

{

Bedingung

)

Anweisungsfolge

}

Programmcode in Java:

public void zaehlung()

{

int zahl=0;

while (zahl < 15)

{

zahl = zahl +5; System.out.println(“zahl hat den Wert:“ + zahl);

Lernbereich: AEAEAEAE

Lernbereich: A E A E A E A E Modul 04 AB0_ - 1/5

Modul 04

AB0_ - 1/5

Lernbereich: A E A E A E A E Modul 04 AB0_ - 1/5
Lernbereich: A E A E A E A E Modul 04 AB0_ - 1/5

2. Offene fussgesteuerte Schleife:

Eine Anweisung „Würfel so lange, bis eine 6 fällt“ lässt hingegen die Anzahl der Wiederholungen offen, nach jeder Ausführung wird geprüft, ob ein gewisses Ereignis eingetreten ist. Es wird aber auf jeden Fall mindestens einmal gewürfelt.

Der Schleifenrumpf einer offenen fußgesteuerten Schleife wird solange durchlaufen wie die formulierte Bedingung wahr ist. Die Bedingungsprüfung erfolgt nachdem der Schleifenrumpf durchlaufen wurde. Der Schleifen- rumpf wird mindestens einmal ausgeführt.

Struktogramm:

Konkretes Beispiel

Würfeln solange keine 6 gefallen
Würfeln
solange keine 6 gefallen

allgemein formuliert

Anweisungen solange Bedingung
Anweisungen
solange Bedingung

Bsp.:

Struktogramm zaehlung2 zahl = 0 zahl = zahl +5 Ausgabe:"zahl hat den Wert " +
Struktogramm zaehlung2
zahl = 0
zahl = zahl +5
Ausgabe:"zahl hat den Wert
" + zahl
solange zahl < 15

Die Schleife wird 3 mal durchlau- fen, da die Bedingung zahl < 15 für den Fall zahl = 15 nicht mehr „wahr“ ist.

Programmcode in Java:

do

{

} while (

);

public void zaehlung2()

{

 

int zahl=0;

do

{

zahl = zahl +5; System.out.println(“zahl hat den Wert:“ + zahl); } while (zahl < 15);

}

Lernbereich: AEAEAEAE

Lernbereich: A E A E A E A E Modul 04 AB0_ - 2/5

Modul 04

AB0_ - 2/5

Lernbereich: A E A E A E A E Modul 04 AB0_ - 2/5
Lernbereich: A E A E A E A E Modul 04 AB0_ - 2/5

3. Zählschleife:

Sofern vor der ersten Ausführung des Schleifenrumpfes bekannt ist, wie oft eine Schleife durch- laufen werden soll, ist es sinnvoll eine Zählschleife einzusetzen. Eine Zählschleife ist eine kopfgesteuerte Schleife. Sie hat einen Anfangswert (AW) und einen Endwert (EW). Die Zählvariable der Zählschleife wird vor der ersten Ausführung des Schlei- fenrumpfes mit dem Anfangswert initialisiert. In der Regel wird die Zählvariable i genannt. Nach jeder Ausfführung des Schleifenrumpfes wird der Wert der Zählvariablen erhöht. Die Erhöhung wird als Schrittweite (SW) bezeichnet . In der Regel beträgt die Schrittweite 1. Der Program- mierer kann dies jedoch auch anders festlegen. Die Lebensdauer der Zählvariablen ist auf die Schleife begrenzt. Es kann nach der Beendigung der Schleife nicht mehr auf sie zugegriffen werden. (Es ist in Java möglich, den Wert der Zählvariablen durch den Quellcode im Schleifenrumpf zu verändern. Dies gilt jedoch als „schlechter Stil“, da der Programmaufbau unübersichtlich wird. Vermeiden Sie dies daher unbedingt!).

Struktogramm:

Konkretes Beispiel i: AW= 1 EW= 20 SW= 1 Schreiben: Ich soll den Unterricht nicht
Konkretes Beispiel
i:
AW= 1
EW= 20
SW= 1
Schreiben: Ich soll den
Unterricht nicht stören
allgemein formuliert i: AW= EW= SW= Anweisungen
allgemein formuliert
i:
AW=
EW=
SW=
Anweisungen

Programmcode in Java:

for ( Initialisierung ; Schleifenbedingung ; Reinitialisierung )

{

}

Lernbereich: AEAEAEAE

Lernbereich: A E A E A E A E Modul 04 AB0_ - 3/5

Modul 04

AB0_ - 3/5

Lernbereich: A E A E A E A E Modul 04 AB0_ - 3/5
Lernbereich: A E A E A E A E Modul 04 AB0_ - 3/5

Bsp.:

Struktogramm aufzaehlung i: AW= 1 EW=10 SW=1 Ausgabe: i
Struktogramm aufzaehlung
i:
AW= 1 EW=10
SW=1
Ausgabe: i

Programmcode in Java:

public void aufzaehlung()

{

 

for ( int i=1 ;

i <= 10

;

i++

)

{

System.out.println(i);

 

}

}

Die Zahlen 1 bis 10 werden auf den Bildschirm ausgegeben. Nach jedem Schleifendurchgang wird i um 1 erhöht. Die Schleife wird ausgeführt solange i <= dem Endwert ist. Die Zählvariable

muss definiert werden. Dies entspricht der „normalen“ Variablendefinition

int i=0.

Erläuterungen zur Zählschleife in Java:

In den runden Klammern der for-Schleife werden drei Angaben erwartet:

1. Initialisierung (Die Zählvariable ist i und erhält zu Beginn den Anfangswert 1).

2. Zählschleife wird ausgeführt, solange die Bedingung wahr der Wert der Zählvariablen ent- sprechend eine Anweisung geändert. Die Bedingung wird vor jedem Ausführen des Schlei- fenrumpfes geprüft ( i <= 10 ).

3. Nach jedem Schleifendurchgang wird inkrementiert. (Die Anweisung i++ erhöht den wert von i um 1).

4.

ForEach-Schleife:

Schleifen für Anweisungen der Form „Begrüße alle Gäste“, bei welcher die Anzahl der Wie- derholungen von der Gruppe der Gäste determiniert wird werden zu einem späteren Zeit- punkt erläutert, wenn die hierfür benötigten Gruppen-Strukturen (Mengen) bekannt sind.