WHILE - Anweisung
Aufgabe : Ausgabe aller ganzen Zahlen von 0 bis 100 auf dem Bildschirm
WICHTIG: Um im Folgenden PLATZ zu sparen wurde statt System.out.println(...) der Pseudocode println(...) verwendet. Statt der Java-Anweisung für die Eingabe wurde der Pseudocode eingabe(...) verwendet.
Schreibaufwendige Lösung:
public class MainWochentag1 { public static void main() throws IOException{ println("0"); println("1"); println("2"); // usw. //... println("100"); } }
Elegantere Lösung:
public class MainWhile { public static void main() throws IOException{ int i; i=0: // wie geht es // weiter ??
while (i<=100){ println(i); i=i+1; } Bedingung Bedingung wahr Bedingung falsch println("Das war es"); } Die while–Anweisung ist EINE (komplexe) Anweisung, in der Anweisungen vorkommen.
Programmverlauf
while (i<=100){ println(i); i=i+1; } i = 0; println("Das war es"); }
Dynamische Entwicklung des Inhalts der Variablen i
while (i<=100){ println(i); i=i+1; } println("Das war es"); i01 i = 0;
while (i<=100){ println(i); i=i+1; } println("Das war es"); i012 i = 0;
.... usw. bis i den Wert 100 hat
while (i<=100){ println(i); i=i+1; } println("Das war es"); i i = 0;
while (i<=100){ println(i); i=i+1; } println("Das war es"); i i = 0;
Java-Syntax für WHILE - Anweisung
while (Ausdruck){ Anweisung; } bei einer Anweisung sind Klammern nicht nötig. Trotzdem: Immer Klammern machen. Blockende kein Semikolon
Warum Endlosschleife ? i=0; i = i+1; } while (i<=3); {
Warum Endlosschleife ? i=0; i = i+1; } while (i<=3); Nach der Bedingung (i<=3) muss eine Anweisung kommen ! Diese Anweisung ist die "leere Anweisung" (die nichts macht bzw. bewirkt), die durch den leeren Ausdruck, der mit einem Semikolon abgeschlossen wird, zu einer Anweisung wird. Diese wird solange ausgeführt, solange i<=3 (in diesem Fall: 0 <=3) ist, also immer. {
Das heißt while (i<=3); while (i<=3) ; wird vom Compiler wie folgt interpretiert:
Aufgabe: Flußdiagramm der WHILE – Anweisung mit einer beliebigen Bedingung und beliebigen Anweisung(en).
Bedingung falsch wahr Anweisung(en)
WHILE - Anweisung als Struktogramm
Anweisungen Bedingung
i = 0; while (i<=100){ println("i="+i); i=i+1; } println("Das war es"); AUFGABE : Stellen Sie den Programmteil unten als Struktogramm dar
Ausgabe(i) while(i<=100) i = i+1 Ausgabe("Das war es") i = 0
Die WHILE - Anweisung nennt man auch kopfgesteuerte bzw. abweisende Schleife, weil die Bedingung am Kopf der Schleife steht, bzw. die Schleife nicht durchlaufen werden muss (Durchgang wird abgewiesen)
Wie oft wird eine kopfgesteuerte Schleife durchlaufen. Nennen Sie die obere bzw. untere Grenze.
0... Durchgänge