Zielony Smok - logo witryny

Klasyczna instrukcja switch

Klasyczna instrukcja switch jest skonstruowana następująco:

switch(expression){
	case XXX:
		//coś
	break;
        ...
	default:
		//coś 1
}

switch jest słowem kluczowym.

expression musi:

  • – być typu prostego (byte, short, char, int) albo
  • – być typu obiektowego (Byte, Short, Character, Integer, String) albo
  • – być elementem wyliczenia enum

Klamry {} obejmują blok instrukcji switch.

case i default są etykietami instrukcji switch. Inne etykiety są niedozwolone.

Etykieta default może wystąpić 0 albo 1 raz.

Etykieta case może wystąpić 0 lub więcej razy.

XXX jest nazwą stałej podanego typu lub nazwą stałej wyliczeniowej. Wszystkie XXX muszą być tego samego typu wyliczeniowego albo kompatybilne przypisaniowo. Żadne dwa XXX nie mogą być sobie równe. XXX typu obiektowego nie może być null.

//coś – to instrukcje do wykonania jeśli zajdzie przypadek opisany przez XXX. //coś może obejmować wiele linii kodu.

Instrukcja switch jest wykonywana kolejno. Jeśli XXX będzie równe wyrażeniu zostanie wykonane //coś.

Słowo break przerywa wykonywanie instrukcji switch.

Jeżeli żadne XXX nie jest równe wyrażeniu – wykonywane jest default czyli //coś 1

Po default nie używa się break choć jest to dopuszczalne. Jeśli default nie występuje break po ostatnim case nie musi występować, choć jest to zalecane.

Instrukcje w obrębie case są wykonywane do słowa break. Jeżeli break nie występuje – kody z kolejnych case są wykonywane aż do pierwszego break.

Klasy

  • Klasa SwitchClassic1 – użycie int
  • SwitchClassic1 – użycie enum
  • Klasa SwitchClassic1 – użycie String
  • Klasa SwitchClassic1 – pominięcie break
SwitchClassic1
package switchexp;

public class SwitchClassic1 {
    public static void main(String[] args){
        String[] dni ={"Pon", "Wto", "Sro", "Czw", "Pia", "Sob", "Nie"};
        int dzien = 0;
        switch(dzien){
            case 0:
                System.out.println(dni[dzien]);
                break;
            case 1:
                System.out.println(dni[dzien]);
                break;
            case 2:
                System.out.println(dni[dzien]);
                break;
            case 3:
                System.out.println(dni[dzien]);
                break;
            case 4:
                System.out.println(dni[dzien]);
                break;
            case 5:
                System.out.println(dni[dzien]);
                break;
            case 6:
                System.out.println(dni[dzien]);
                break;
            default:
                System.out.println("Nie ma takiego dnia");
        }
    }
}
SwitchClassic2
package switchexp;

public class SwitchClassic2 {
    enum Dni{Pon, Wto, Sro, Czw, Pia, Sob, Nie};
    public static void main(String[] args){
        Dni dzien = Dni.Pon;
        switch(dzien){
            case Pon:
                System.out.println(dzien);
                break;
            case Wto:
                System.out.println(dzien);
                break;
            case Sro:
                System.out.println(dzien);
                break;
            case Czw:
                System.out.println(dzien);
                break;
            case Pia:
                System.out.println(dzien);
                break;
            case Sob:
                System.out.println(dzien);
                break;
            case Nie:
                System.out.println(dzien);
                break;
            default:
                System.out.println("Nie ma takiego dnia");
        }
    }
}
SwitchClassic3
package switchexp;

public class SwitchClassic3 {
    public static void main(String[] args){
        String dzien = "Pon";
        switch(dzien){
            case "Pon":
                System.out.println(dzien);
                break;
            case "Wto":
                System.out.println(dzien);
                break;
            case "Sro":
                System.out.println(dzien);
                break;
            case "Czw":
                System.out.println(dzien);
                break;
            case "Pia":
                System.out.println(dzien);
                break;
            case "Sob":
                System.out.println(dzien);
                break;
            case "Nie":
                System.out.println(dzien);
                break;
            default:
                System.out.println("Nie ma takiego dnia");
        }
    }
}
SwitchClassic4
package switchexp;

public class SwitchClassic4 {
    public static void main(String[] args){
        int dzien = 0;
        switch(dzien){
            case 0:
                System.out.println("Pon");
            case 1:
                System.out.println("Wto");
            case 2:
                System.out.println("Sro");
                break;
            case 3:
                System.out.println("Czw");
                break;
            case 4:
                System.out.println("Pia");
                break;
            case 5:
                System.out.println("Sob");
                break;
            case 6:
                System.out.println("Nie");
                break;
            default:
                System.out.println("Nie ma takiego dnia");
        }
    }
}