W tym samouczku za pomocą przykładów nauczysz się używać instrukcji switch w Javie do sterowania przepływem wykonywania programu.
switch
Zestawienie pozwala nam wykonać blok kodu spośród wielu alternatyw.
Składnia switch
instrukcji w Javie to:
switch (expression) ( case value1: // code to be executed if // expression is equal to value1 break; case value2: // code to be executed if // expression is equal to value2 break;… … default: // default statements )
Jak działa instrukcja switch?
Wyrażenie jest oceniane raz i porównywane z wartościami każdej etykiety przypadku .
- W przypadku dopasowania wykonywany jest odpowiedni kod po dopasowanej etykiecie przypadku .
Na przykład, jeśli wartość wyrażenia jest równa wartość2,case value2:
wykonywany jest następujący kod . - Jeśli nie ma dopasowania,
default:
wykonywany jest kod po .
Uwaga : tę samą funkcjonalność możemy wykonać przy użyciu języka Java if… else… if ladder. Jednak składnia instrukcji switch jest bardziej przejrzysta i dużo łatwiejsza do czytania i pisania.
Schemat blokowy instrukcji switch

Przykład 1: Instrukcja przełączania języka Java
// Java Program to check the size // using the switch… case statement class Main ( public static void main(String() args) ( int number = 44; String size; // switch statement to check size switch (number) ( case 29: size = "Small"; break; case 42: size = "Medium"; break; // match the value of week case 44: size = "Large"; break; case 48: size = "Extra Large"; break; default: size = "Unknown"; break; ) System.out.println("Size: " + size); ) )
Wyjście :
Rozmiar L
W powyższym przykładzie użyliśmy instrukcji switch, aby znaleźć rozmiar. Tutaj mamy zmienną liczbę. Zmienna jest porównywana z wartością każdej instrukcji case.
Ponieważ wartość odpowiada przypadkowi 44 , zmiennej rozmiaru jest przypisywana wartość Large
.
instrukcja break w przełączniku Java… case
Zwróć uwagę, że użyliśmy break
instrukcji w każdym bloku case. Jest to przydatne do zakończenia instrukcji.
Jeśli break
instrukcja nie jest używana, wykonywane są wszystkie obserwacje po dopasowaniu. Na przykład,
class Main ( public static void main(String() args) ( int expression = 2; // switch statement to check size switch (expression) ( case 1: System.out.println("Case 1"); // matching case case 2: System.out.println("Case 2"); case 3: System.out.println("Case 3"); default: System.out.println("Default case"); ) ) )
Wynik
Przypadek 2 Przypadek 3 Przypadek domyślny
W powyższym przykładzie nie użyliśmy tej break
instrukcji. Tutaj wyrażenie pasuje do case 2
.
Jak widać, case 2
wykonywane są również wszystkie poniższe przypadki.
To nie jest pożądane wyjście. Dlatego konieczne jest użycie break
instrukcji w każdym bloku case .
Przykład 2: Tworzenie kalkulatora za pomocą instrukcji switch
Poniższy program pobiera trzy dane wejściowe od użytkownika: jednego operatora i 2 liczby . Na podstawie operatora dostarczonego przez użytkownika wykonuje obliczenia na liczbach. Następnie wynik jest wyświetlany na ekranie.
Zanim przejdziesz przez program, upewnij się, że wiesz o skanerze Java, aby pobierać dane od użytkownika.
import java.util.Scanner; class Main ( public static void main(String() args) ( char operator; Double number1, number2, result; // create an object of Scanner class Scanner input = new Scanner(System.in); // ask users to enter operator System.out.print("Choose an operator: +, -, *, or /: "); operator = input.next().charAt(0); // ask users to enter numbers System.out.print("Enter first number: "); number1 = input.nextDouble(); System.out.println("Enter second number: "); number2 = input.nextDouble(); switch (operator) ( // performs addition between numbers case '+': result = number1 + number2; System.out.print(number1 + "+" + number2 + " = " + result); break; // performs subtraction between numbers case '-': result = number1 - number2; System.out.print(number1 + "-" + number2 + " = " + result); break; // performs multiplication between numbers case '*': result = number1 * number2; System.out.print(number1 + "*" + number2 + " = " + result); break; // performs division between numbers case '/': result = number1 / number2; System.out.print(number1 + "/" + number2 + " = " + result); break; default: System.out.println("Invalid operator!"); break; ) input.close(); ) )
Wyjście 1
Wybierz operator: +, -, * lub /: + Wpisz pierwszą liczbę: 23 Wpisz drugą liczbę: 21 23,0 + 21,0 = 44,0
Wyjście 2
Wybierz operator: +, -, * lub /: - Wpisz pierwszą liczbę: 24 Wpisz drugą liczbę: 13 24,0-13,0 = 11,0
Wyjście 3
Wybierz operator: +, -, * lub /: * Wpisz pierwszą liczbę: 12 Wpisz drugą liczbę: 6 12,0 * 6,0 = 72,0
Wyjście 4
Wybierz operator: +, -, * lub /: / Podaj pierwszą liczbę: 36 Podaj drugą liczbę: 6 36,0 / 6,0 = 6,0
Wyjście 5
Wybierz operator: +, -, * lub /:? Wpisz pierwszą liczbę: 12 Wpisz drugą liczbę: 23 Nieprawidłowy operator!
W powyższym przykładzie używamy switch… case
instrukcji do wykonywania dodawania, odejmowania, mnożenia i dzielenia.
Uwaga : instrukcja przełączania języka Java działa tylko z:
- Typy danych Java Primitive: bajt, krótki, znak i int
- Typy wyliczeniowe Java
- Klasa ciągów Java
- Klasy opakowujące Java: znakowe, bajtowe, krótkie i całkowite.