Programmverzweigungen aufgrund von bestimmten Bedingungen gehören zu den Grundstrukturen jeder Programmiersprache. Die Anweisungen nach if werden nur ausgeführt, wenn die Bedingung zutrifft, sonst werden die Anweisungen nach else ausgeführt.
// ChangeColor.java import ch.aplu.util.*; import java.awt.Color; class Chan { ChangeColor() { GPanel p = new GPanel(-20, 20, -20, 20); for (int i = -20; i <= 20; i++) { if (i < 0) p.color(Color.red); else p.color(Color.green); p.line(i, -20, 0, 20); } } public static void main(String[] args) { new ChangeColor(); } } |
if |
Wenn nach if bzw. else mehrere Anweisungen folgen, müssen diese in einem mit geschweiften Klammern umfassten Block stehen. |
Oft muss ein zusätzlicher Anweisungsblock ausgeführt werden, wenn eine gewisse Bedingung erfüllt ist. Der else-Block kann dann entfallen.
// Schachbrett.java import ch.aplu.util.*; import java.awt.Color; class Scha { Schachbrett() { GPanel p = new GPanel(); p.window(0, 8, 0, 8); for (int i = 0; i < 8; i++) for (int j = 0; j < 8; j++) if ((i + j) % 2 == 0) p.fillRectangle(i, j, i + 1, j+1); p.line(0, 8, 8, 8); } public static void main(String[] args) { new Schachbrett(); } } |
i % 2 | Der Modulo-Operator liefert den Rest aus der Ganzzahldivision von i durch 2. |
if ((i + j) % 2 == 0) |
Beim Prüfen auf Gleichheit wird der Vergleichsoperator "==" verwendet. Im Unterschied zu einer Zuweisung wird der Vergleichsoperator immer mit zwei Gleichheitszeichen geschrieben. |
//Pyramide.java import ch.aplu.util.*; import java.awt.Color; class Pyramide { Pyramide() { GPanel p = new GPanel(0, 30, 0, 30); for (int i = 1; i < 30; i++) { if (i < 10) p.color(Color.red); else if (i < 20) p.color(Color.yellow); else p.color(Color.green); p.move(15, i); p.fillRectangle (30-i, 0.7); } } public static void main(String[] args) { new Pyramide(); } } |
// Farbswitch.java import ch.aplu.util.*; import java.awt.Color; class Farbswitch { Farbswitch() { GPanel p = new GPanel(0, 10, 0, 10); for (int j = 1; j < 10; j++) { for (int i = 1; i < 10; i++) { switch (i) { case 1: p.color(Color.red); break; case 2: p.color(Color.yellow); break; case 3: p.color(Color.green); break; case 4: p.color(Color.blue); break; case 5: p.color(Color.magenta); break; default: p.color(Color.black); } p.move(i, j); p.fillRectangle(0.9, 0.9); } } } public static void main(String[] args) { new Farbswitch(); } } |