Instrukcja przełącznika języka Java (z przykładami)

W tym samouczku za pomocą przykładów nauczysz się używać instrukcji switch w Javie do sterowania przepływem wykonywania programu.

switchZestawienie pozwala nam wykonać blok kodu spośród wielu alternatyw.

Składnia switchinstrukcji 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

Schemat blokowy instrukcji przełącznika Java

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 breakinstrukcji w każdym bloku case. Jest to przydatne do zakończenia instrukcji.

Jeśli breakinstrukcja 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 breakinstrukcji. Tutaj wyrażenie pasuje do case 2.

Jak widać, case 2wykonywane są również wszystkie poniższe przypadki.

To nie jest pożądane wyjście. Dlatego konieczne jest użycie breakinstrukcji 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… caseinstrukcji 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.

Interesujące artykuły...