n Zahlen durch die Formel n*(n+1)/2 gegeben
ist. Wir überprüfen dies durch eine Schleife (in
einem main()-Block):
//for1
int n, i, s1, s2;
n=10; s1=0;
for (i=1;i<=n;i++) s1+=i;
s2=n*(n+1)/2;
System.out.println(
"Summe der ersten "+n+" Zahlen ist "+s1);
System.out.println("Nach Gauss: "+s2);
Eine for-Schleife hat den Aufbau for (A, B, C) D,
wobei der Schleifenzähler in A initialisiert wird,
der Anweisungsblock D ausgeführt wird, falls der Boole'sche
Ausdruck B true ist, und danach der Schleifenzähler in C
aufdatiert wird, um erneut D auszuführen, sofern B
true ist. Die Schleife endet, wenn B erstmals
false ist. Tritt dies nie auf, handelt es sich um einezu
vermeidende Totschleife.
Besteht D aus mehreren Anweisungen, werden diese durch geschweifte Klammern zu einem Block zusammengefasst.
Beachte den Kurzoperator += und den Inkrementoperator ++ in obigem Java-Block.
Es kann übersichtlicher sein, den Schleifenzähler nur
lokal innerhalb der Schleife zu deklarieren. Dies geschieht durch
eine simultane Deklaration und Initialisierung:
for (int i=1;i<=n;i++) s1+=i;
//While1
int n, i, s1;
n=10; s1=0; i=0;
while(i<=n) {s1+=i++;}
System.out.println(
"Summe der ersten "+n+" Zahlen ist "+s1);
Die Syntax einer while-Schleife ist while (A) B, wobei A
ein Boole'scher Ausdruck und B ein Anweisungsblock ist, der
immer ausgeführt wird, solange A true. Hier
muss es keinen Schleifenzähler geben, jedoch sollte B den
Boole'schen Ausdruck A verändern.
Im folgenden Beispiel
wird a_n:=a^n mittels der Rekursion
a_{n+1}=a*a_n, a_0=1 berechnet, wobei die Schleife solange
durchlaufen wird, bis a_n<=ep (es ergibt sich
i=1833, a_n wird in der double-Variablen
p abgespeichert).
//While2
double a=0.99, p=1, ep=1E-8;
int i=0;
while (p>ep) {p*=a; i++;}
System.out.println(
"Die while-Schleife wurde "+i+" mal durchlaufen");
Der Schleifenzähler i dient hier
nur externen Zählzwecken.
true ist - wieder B ausgeführt wird. Sonst
ist die Schleife zu Ende. Insbesondere wird B stets mindestens einmal
ausgeführt.
double a=0.99, p=1, ep=1E-8; int i=0;
do {p*=a; i++;} while (p>ep)
System.out.println(
"Die do-while-Schleife wurde "+i+" mal durchlaufen");
Jetzt wird die Schleife genauso oft durchlaufen. Nur, wenn
ep=1, wird sie einmal, die obige aber keinmal durchlaufen.