|
switch-Anweisung Mit geschachtelten if-Anweisungen lassen sich grundsätzlich alle Entscheidungsfolgen realisieren: public class Swch01 { public static void main(String args[]) { int zahl; zahl=Integer.valueOf(args[0]).intValue(); if(zahl==1) System.out.println("Die Zahl ist Eins."); else if(zahl==2) System.out.println("Die Zahl ist Zwei."); else if(zahl==3 || zahl==4 || zahl==5) System.out.println("Die Zahl ist Drei, Vier oder Fünf."); else System.out.println("Die Zahl ist weder Eins noch ... Fünf."); System.exit(0); } } Da Entscheidungsfolgen dieser Art keineswegs selten vorkommen, kennt Java mit der Anweisung switch eine Realisierung:
Syntax: switch (ausdruck)
{
case konstanter ausdruck_1:
anweisung_1;
case konstanter ausdruck_2:
anweisung_2;
case konstanter ausdruck_3:
anweisung_3;
...
...
case konstanter ausdruck_n:
anweisung_n;
default:
anweisungen
}
- Der Ausdruck ausdruck wird vollständig ausgewertet.
- Wir eine Übereinstimmung mit case konstanter ausdruck_i: (1 i n)
gefunden, dann wird bei dieser Anweisung die Abarbeitung fortgesetzt.
- Wird keine Übereinstimmung gefunden, wird bei default: fortgefahren.
- Gibt es kein default: wird der Anweisungsteil der switch-Anweisung ignoriert.
- Sowohl der Ausdruck ausdruck als auch die konstanten Ausdrücke müssen ganzzahlig
(byte, char, short oder int) sein.
- Die Reihenfolge der case- oder default-Anweisung ist beliebig.
- Durch den Befehl break wird die switch-Anweisung sofort verlassen.
Beispiel:
public class Swch02
{
public static void main(String args[])
{
int zahl;
zahl=Integer.valueOf(args[0]).intValue();
switch(zahl)
{
case 1:
System.out.println("Die Zahl ist Eins."); break;
case 2:
System.out.println("Die Zahl ist Zwei."); break;
case 3: case 4: case 5:
System.out.println("Die Zahl ist Drei, Vier oder Fünf."); break;
default:
System.out.println("Die Zahl ist weder Eins noch ... Fünf.");
}
System.exit(0);
}
}
Beispiel:
public class Swch03
{
public static void main(String args[])
{
int zahl;
zahl=Integer.valueOf(args[0]).intValue();
switch(zahl)
{
case 1:
System.out.println("Montag"); break;
case 2:
System.out.println("Dienstag"); break;
case 3:
System.out.println("Mittwoch"); break;
case 4:
System.out.println("Donnerstag"); break;
case 5:
System.out.println("Freitag"); break;
case 6:
System.out.println("Samstag"); break;
case 7:
System.out.println("Sonntag"); break;
default:
System.out.println("Eingabe ist falsch.");
}
System.exit(0);
}
}
- Es sind nur Vergleiche mit primitiven Datentypen möglich.
- Es können keine größeren primitiven Typen (long, float, double) oder Objekte benutzt
werden.
- Es kann abgesehen von Gleichheit keine Beziehung geprüft werden. Verschachtelte if-
Anweisungen sind dagegen auf jede Art der Prüfung und auf jeden Datentyp anwendbar.
|
|
|