Koordinatengrafik mit Java
HomeAufgabenDruckenJava-Online

Selektion


if - else - Struktur

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(-2020-2020);
    for (int i = -20; i <= 20; i++)
    {
      if (< 0) 
        p.color(Color.red);
      else
        p.color(Color.green);
      p.line(i, -20020);   
    }
  }

  public static void main(String[] args)
  {
    new ChangeColor();
  }
}
 

Erklärungen zum Programmcode:

if
else

Wenn nach if bzw. else mehrere Anweisungen folgen, müssen diese in einem mit geschweiften Klammern umfassten Block stehen.

if - Struktur

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(0808);
    for (int i = 0; i < 8; i++)
      for (int j = 0; j < 8; j++)
        if ((+ j) % 2 == 0)
          p.fillRectangle(i, j, i + 1, j+1);
    p.line(0888);
  }

  public static void main(String[] args)
  {
    new Schachbrett();
  }
}
 

Erklärungen zum Programmcode:
i % 2

Der Modulo-Operator liefert den Rest aus der Ganzzahldivision von i durch 2.
Praktisch ist diese Operation bei der Unterscheidung von geraden und ungeraden Zahlen: i % 2 ergibt 0 falls i gerade ist und 1 falls i ungerade ist.

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.

 

if - else if -else Struktur (mehrfache Auswahl)

Es können auch mehrere Bedingungen nacheinander überprüft werden. Um die Übersicht nicht zu verlieren, sind die Zeileneinrückungen wichtig.

//Pyramide.java

import ch.aplu.util.*;
import java.awt.Color;

class Pyramide
{
  Pyramide()
  {
    GPanel p = new GPanel(030030);
 
    for (int i = 1; i < 30; i++)
    {
      if (< 10)
        p.color(Color.red);
      else 
        if (< 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();
  }
}
 

 

switch - Struktur (mehrfache Auswahl)

Wenn mehr als drei Bedingungen nacheinander überprüft werden müssen, verwendet man in der Regel die switch-Struktur. Das "break" in jedem Case bewirkt, dass das Programm aus der switch-Struktur aussteigt, sobald der passende Fall eingetroffen ist. In diesem Beispiel ist auch sehr gut die Funktionalität einer doppelten for-Schleife ersichtlich: Die innere for-Schleife zeichnet jeweils eine Zeile, die äussere for-Schleife bewirkt dass mehrere Linien gezeichnet werden..

// Farbswitch.java

import ch.aplu.util.*;
import java.awt.Color;

class Farbswitch
{
  Farbswitch()
  {
    GPanel p = new GPanel(010010);
 
    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.90.9);
      }
    }
  }

  public static void main(String[] args)
  {
    new Farbswitch();
  }
}