Anweisungsblöcke sind geklammerte Folgen von Anweisungen:
{
Anweisung1;
Anweisung2;
...
Anweisung3;
}
then
und else
-Zweig in der if
-Anweisung entsprechen jeweils Anweisungsblöcken.
Anweisungen in Anweisungsblöcken sollten eingerückt werden
if (n != 0) {
n = n / 2;
n--;
} else {
n = n * 2;
n++;
}
if (n != 0) {
n = n / 2;
n--;
} else {
n = n * 2;
n++;
}
Vergleich zweier Werte liefert wahr (true
) oder falsch (false
)
Bedeutung | Beispiel | |
---|---|---|
== | gleich | x == 3 |
!= | ungleich | x != y |
> | grösser | 4 > 3 |
< | kleiner | x + 1 < 0 |
>= | grösser oder gleich | x >= y |
<= | kleiner oder gleich | x <= y |
Wird z.B. in If-Anweisung verwendet
int z = 5;
System.out.println("z ist eine gerade, positive Zahl");
System.out.println("z ist eine gerade, negative Zahl");
System.out.println("z ist eine ungerade, positive Zahl");
System.out.println("z ist eine ungerade, negative Zahl");
Und (&&) und Oder (||) Verknüpfung
x | y | x && y |
x | | y |
---|---|---|---|
true | true | true | true |
true | false | false | true |
false | true | false | true |
false | false | false | false |
! Nicht-Verknüpfung
x | !x |
---|---|
true | false |
false | true |
Beispiel:
if (x >= 0 && x <= 10 || x >= 100 && x <= 110) {
x = y;
}
int x = 1;
boolean p = false;
boolean q = x > 0;
p = p || q && x < 10
In längeren Programmen kommt es häufig vor, dass sich eine komplexe Anweisungsfolge nur in kleinen Teilen unterscheidet. Dies ist in folgendem Programm illustriert, wo wir mal wieder die Turtle Grafik verwenden.
hasWindow
und hasChimney
ein, welche es erlauben ein Haus wahlweise mit Kamin, mit Fenster oder mit beidem zu zeichnen.// Laden der Turtle Bibliothek
// Diese Kommandos funktionieren nur in Jupyter-notebooks und entsprechen nicht gültigem Java.
%mavenRepo bintray https://dl.bintray.com/egp/maven
%maven ch.unibas.informatik:jturtle:0.5
import ch.unibas.informatik.jturtle.Turtle;
Turtle t = new Turtle();
// head
t.home();
t.penDown();
t.backward(50);
t.forward(50);
t.turnRight(45);
t.forward(50);
t.turnRight(90);
t.forward(20);
t.turnLeft(135);
t.forward(10);
t.turnRight(90);
t.forward(10);
t.turnRight(90);
t.forward(20);
t.turnLeft(45);
t.forward(15);
t.turnRight(45);
t.forward(50);
t.turnRight(90);
t.forward(70);
t.toImage();
hasWindow
auf true gesetzt ist.