Turtlegrafik für Smartphones und Tablets

Entwicklungsprojekt PHBern  
HomeOnline-Editor startenDruckenAndroid GamesJava-Online

switch-Struktur (Mehrfachauswahl)


Anstelle einer mehrfachen if-else-Struktur wird bei einer Mehrfachauswahl mit Vorteil die switch-Struktur verwendet. Trifft der Wert zu, werden die entsprechende Anweisungen ausgeführt. Am Ende jeder case-Blocks muss "break" stehen, sonst läuft die switch-Struktur durch (siehe Bsp. 2).

Source mit Online-Compiler bearbeiten

App installieren auf Smartphone oder Tablet

QR-Code

Sources downloaden (Tu8.zip)

// Tu8.java

package app.tu8;

import turtle.*;

public class Tu8 extends Playground
{
  public void main()
  {
    st();
    setSpeed(10);
    for (int k = 0; k < 6; k++)
    {
      switch(k)
      {
        case 0:
          setPenColor(RED);
          break;
        case 1:
        case 3:  
          setPenColor(YELLOW);
          break;
        case 2:
          setPenColor(MAGENTA);
          break;
        default:
          setPenColor(GREEN);
          break;          
      }

      for (int i = 0; i < 3; i++)
      {  
        fd(100);
        rt(120);        
      }
      rt(30).fd(5).fill();
      bk(5).rt(30);
    }
  }  
}
 

Erklärungen zum Programmcode:

switch(k)

k ist ein Wert zwischen 0 und 5

break

Mit break wird die restliche switch-Struktur übersprungen

case 1:
case 3:

Bei 1 und 3 wird die gleiche Farbe gewählt


Beispiel 2: In diesem Beispiel wird die Bedeutung von break in den case-Anweisungen ersichtlich. Steht in jeder Anweisung ein break, so trifft nur ein Fall zu: Es wird entweder ein Quadrat, oder ein Dreieck oder eine Linie gezeichnet. Fehlt break im ersten case, so wird sowohl ein Quadrat als auch ein Dreieck gezeichnet (wir sagen, dass die switch-Struktur "durchfällt").

Source mit Online-Compiler bearbeiten

App installieren auf Smartphone oder Tablet

QR-Code

Sources downloaden (Tu8a.zip)

// Tu8a.java
package app.tu8a;

import turtle.*;

public class Tu8a extends Playground
{
  void main()
  {
    st();
    setSpeed(10);
    int = (int) (Math.random() * 3);

    switch (k)
    {
      case 0:
        setPenColor(YELLOW);
        square(); 
        //break;
      case 1:
        setPenColor(RED);
        triangle();
        break;
      default:
        setPenColor(GREEN);
        fd(100);
        break;
    }
 }

  void square()
  {
    rt(90);
    for (int = 0; k < 4; k++)
    {
      fd(100);
      rt(90);
    }
  }

  void triangle()
  {
    setHeading(90);
    for (int = 0; k < 3; k++)
    {
      fd(100);
      lt(120);
    }
  }
}