The instrukcja switch w Javie jest wielokierunkową instrukcją rozgałęzienia. Krótko mówiąc, instrukcja switch Java wykonuje jedną instrukcję na podstawie wielu warunków.
To jest jak jeśli-jeżeli-jeżeli oświadczenie drabinowe. Zapewnia łatwy sposób wysyłania wykonania do różnych części kodu w oparciu o wartość wyrażenia. Wyrażenie może mieć postać a bajt , krótki , zwęglać , Lub wew prymitywny typ danych. Testuje równość zmiennych względem wielu wartości.
Notatka: Wyrażenie przełącznika Java musi składać się z bajtu, krótkiego, int, długiego (wraz z typem Wrapper), wyliczeń i ciągu znaków. Począwszy od JDK7, działa również z typami wyliczeniowymi ( Wyliczenia w Javie), Strunowy klasa i Obwoluta zajęcia.
Składnia
switch(expression) { case value1 : // Statements break; // break is optional case value2 : // Statements break; // break is optional .... .... .... default : // default Statement }>Przykład:
Przykład drukarki rozmiaru
Java ma wartość zerowąJawa
public class SizePrinter { public static void main(String[] args) { int sizeNumber = 2; // Replace with your desired size (1, 2, 3, 4, or 5) switch (sizeNumber) { case 1: System.out.println('Extra Small'); break; case 2: System.out.println('Small'); break; case 3: System.out.println('Medium'); break; case 4: System.out.println('Large'); break; case 5: System.out.println('Extra Large'); break; default: System.out.println('Invalid size number'); } } }> Wyjście:
Small>
Kilka ważnych zasad dotyczących instrukcji Java Switch
- Może istnieć dowolna liczba przypadków narzucających sprawdzenie warunku, ale pamiętaj, że zduplikowane wartości przypadków są niedozwolone.
- Wartość przypadku musi być tego samego typu danych, co zmienna w przełączniku.
- Wartość przypadku musi być stała lub dosłowna. Zmienne są niedozwolone.
- Instrukcja break jest używana wewnątrz przełącznika w celu zakończenia sekwencji instrukcji.
- Instrukcja break jest opcjonalna. Jeżeli zostanie pominięty, wykonanie będzie kontynuowane w następnej sprawie.
- Instrukcja domyślna jest opcjonalna i może pojawić się w dowolnym miejscu bloku przełącznika. W przypadku, jeśli nie jest to koniec, to po instrukcji default należy umieścić instrukcję break, aby pominąć wykonanie kolejnej instrukcji case.
Note: Until Java-6, switch case argument cannot be of String type but Java 7 onward we can use String type argument in Switch Case.>
Schemat blokowy instrukcji dotyczącej przypadku zmiany
Poniższy schemat blokowy przedstawia przepływ sterowania i działanie instrukcji switch:

Notatka: Instrukcja switch Java jest instrukcją przejściową, co oznacza, że wykonuje wszystkie instrukcje if przerwać słowo kluczowe nie jest używany, dlatego bardzo istotne jest użycie słowa kluczowego break w każdym przypadku.
Przykład: Dzień Znalezienia
Rozważmy następujący program Java, który deklaruje dzień o nazwie int, którego wartość reprezentuje dzień (1-7). Kod wyświetla nazwę dnia na podstawie wartości dnia za pomocą instrukcji switch.
Jawa // Java program to Demonstrate Switch Case // with Primitive(int) Data Type // Class public class GFG { // Main driver method public static void main(String[] args) { int day = 5; String dayString; // Switch statement with int data type switch (day) { // Case case 1: dayString = 'Monday'; break; // Case case 2: dayString = 'Tuesday'; break; // Case case 3: dayString = 'Wednesday'; break; // Case case 4: dayString = 'Thursday'; break; // Case case 5: dayString = 'Friday'; break; // Case case 6: dayString = 'Saturday'; break; // Case case 7: dayString = 'Sunday'; break; // Default case default: dayString = 'Invalid day'; } System.out.println(dayString); } }> Wyjście
Friday>
break w instrukcjach switch case
A oświadczenie o złamaniu jest opcjonalne. Jeśli pominiemy przerwę, wykonanie będzie kontynuowane w następnym przypadku.
Czasami pożądane jest posiadanie wielu skrzynek bez nich przerwa wypowiedzi między nimi. Rozważmy na przykład zaktualizowaną wersję powyższego programu, wyświetla on również, czy dzień jest dniem powszednim, czy weekendem.
Przykład:
Program instrukcji przełączania bez wielokrotnych przerw
program do enkapsulacjiJawa
// Java Program to Demonstrate Switch Case // with Multiple Cases Without Break Statements // Class public class GFG { // main driver method public static void main(String[] args) { int day = 2; String dayType; String dayString; // Switch case switch (day) { // Case case 1: dayString = 'Monday'; break; // Case case 2: dayString = 'Tuesday'; break; // Case case 3: dayString = 'Wednesday'; break; case 4: dayString = 'Thursday'; break; case 5: dayString = 'Friday'; break; case 6: dayString = 'Saturday'; break; case 7: dayString = 'Sunday'; break; default: dayString = 'Invalid day'; } switch (day) { // Multiple cases without break statements case 1: case 2: case 3: case 4: case 5: dayType = 'Weekday'; break; case 6: case 7: dayType = 'Weekend'; break; default: dayType = 'Invalid daytype'; } System.out.println(dayString + ' is a ' + dayType); } }> Wyjście
Tuesday is a Weekday>
Instrukcje przełączników zagnieżdżonych w Javie
Możemy użyć A przełącznik Jak część sekwencji instrukcji z wyłącznik zewnętrzny. Nazywa się to przełącznik zagnieżdżony . Ponieważ instrukcja switch definiuje jej blok, nie powstają żadne konflikty pomiędzy stałymi wielkości liter w przełączniku wewnętrznym a stałymi w przełączniku zewnętrznym.
Przykład:
Zagnieżdżona instrukcja przełącznika
Jawa // Java Program to Demonstrate // Nested Switch Case Statement // Class public class GFG { // Main driver method public static void main(String[] args) { // Custom input string String Branch = 'CSE'; int year = 2; // Switch case switch (year) { // Case case 1: System.out.println( 'elective courses : Advance english, Algebra'); // Break statement to hault execution here // itself if case is matched break; // Case case 2: // Switch inside a switch // Nested Switch switch (Branch) { // Nested case case 'CSE': case 'CCE': System.out.println( 'elective courses : Machine Learning, Big Data'); break; // Case case 'ECE': System.out.println( 'elective courses : Antenna Engineering'); break; // default case // It will execute if above cases does not // execute default: // Print statement System.out.println( 'Elective courses : Optimization'); } } } }> Wyjście
elective courses : Machine Learning, Big Data>
Wyliczenie Java w instrukcji Switch
Wyliczenia (wyliczenia) to skuteczny i przejrzysty sposób reprezentują ustalony zestaw nazwanych stałych w Jawie.
Wyliczenia są używane w instrukcjach Switch ze względu na ich bezpieczeństwo typu i czytelność.
Przykład:
Użycie Enum w Switchu
Java dodaj do tablicyJawa
// Java Program to Illustrate Use of Enum // in Switch Statement // Class public class GFG { // Enum public enum Day { Sun, Mon, Tue, Wed, Thu, Fri, Sat } // Main driver method public static void main(String args[]) { // Enum Day[] DayNow = Day.values(); // Iterating using for each loop for (Day Now : DayNow) { // Switch case switch (Now) { // Case 1 case Sun: System.out.println('Sunday'); // break statement that hault further // execution once case is satisfied break; // Case 2 case Mon: System.out.println('Monday'); break; // Case 3 case Tue: System.out.println('Tuesday'); break; // Case 4 case Wed: System.out.println('Wednesday'); break; // Case 5 case Thu: System.out.println('Thursday'); break; // Case 6 case Fri: System.out.println('Friday'); break; // Case 7 case Sat: System.out.println('Saturday'); } } } }> Wyjście
Sunday Monday Tuesday Wednesday Thursday Friday Saturday>
domyślna instrukcja w Java Switch Case
Domyślny przypadek w przypadku Switch określa, jaki kod ma zostać uruchomiony, jeśli żaden przypadek nie pasuje.
Preferowane jest zapisywanie przypadku domyślnego na końcu wszystkich możliwych przypadków, ale można go zapisać w dowolnym miejscu instrukcji switch.
Przykład:
Zapisywanie wartości domyślnej w środku instrukcji switch:
Jawa /*package whatever //do not write package name here */ import java.io.*; class GFG { public static void main (String[] args) { int i=2; switch(i){ default: System.out.println('Default'); case 1: System.out.println(1); break; case 2: System.out.println(2); case 3: System.out.println(3); } } }> Wyjście
2 3>
Przykład:
Zapisywanie wartości domyślnych na początku instrukcji switch
Jawa import java.io.*; class GFG { public static void main(String[] args) { int i = 5; switch (i) { default: System.out.println('Default'); case 1: System.out.println(1); break; case 2: System.out.println(2); case 3: System.out.println(3); } } }> Wyjście
Default 1>
Warianty etykiet etui
Etykieta przypadku i argumenty przełącznika mogą być wyrażeniem stałym. Argument switch może być wyrażeniem zmiennym.
Przykład:
Używanie argumentu zmiany zmiennej.
Jawa import java.io.*; class GFG { public static void main(String[] args) { int x = 2; switch (x + 1) { case 1: System.out.println(1); break; case 1 + 1: System.out.println(2); break; case 2 + 1: System.out.println(3); break; default: System.out.println('Default'); } } }> Wyjście
3>
Etykieta przypadku nie może być zmienną ani wyrażeniem zmiennym. Musi to być wyrażenie stałe.
Jawa import java.io.*; class GFG { public static void main(String[] args) { int x = 2; int y = 1; switch (x) { case 1: System.out.println(1); break; case 2: System.out.println(2); break; case x + y: System.out.println(3); break; default: System.out.println('Default'); } } }> ./GFG.java:16: error: constant expression required case x+y: ^ 1 error>
Opakowanie Java w instrukcjach Switch
Java zapewnia cztery klasy wrapperów do użycia: Integer, Short, Byte i Long w instrukcjach switch.
Przykład:
Opakowanie Java w obudowie przełącznika.
świetny język komputerowyJawa
public class WrapperSwitchExample { public static void main(String[] args) { Integer age = 25; switch (age.intValue()) { // Extract primitive value for switch case 25: System.out.println('You are 25.'); break; case 30: System.out.println('You are 30.'); break; default: System.out.println('Age not matched.'); } } }> Wyjście:
You are 25.>
Notatka:
Niezależnie od jego umiejscowienia, przypadek domyślny zostanie wykonany tylko wtedy, gdy żaden z pozostałych warunków przypadku nie zostanie spełniony. Zatem umieszczenie go na początku, w środku lub na końcu nie zmienia podstawowej logiki (chyba że używasz mniej popularnej techniki zwanej opadaniem).
Przykład: W tym kodzie będziemy identyfikować dzień tygodnia za pomocą liczb (1-7).
Jawa import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print('Enter a day number (1-7): '); int day = scanner.nextInt(); switch (day) { default: System.out.println('Not a valid weekday.'); break; case 1: System.out.println('It's Monday!'); break; case 2: System.out.println('It's Tuesday!'); break; case 3: System.out.println('It's Wednesday!'); break; case 4: System.out.println('It's Thursday!'); break; case 5: System.out.println('It's Friday!'); break; case 6: System.out.println('It's Saturday!'); break; case 7: System.out.println('It's Sunday!'); break; } } }> Wyjście
ciąg do znaku Java
Enter a day number (1-7): 8 Not a valid weekday.>
Czytaj więcej:
- Użycie słowa kluczowego Enum i Switch w Javie
- Ciąg znaków w Switch Case w Javie
- Samouczek Java
Ćwiczenia
Aby poćwiczyć instrukcje przełączania Java, możesz odwiedzić stronę: Praktyka dotycząca oświadczenia dotyczącego przypadku przełącznika Java
Wniosek
Instrukcje switch w Javie to struktury przepływu sterowania, które umożliwiają wykonanie określonego bloku kodu w oparciu o wartość pojedynczego wyrażenia. Można je traktować jako alternatywę dla instrukcji if-else-if w programowaniu.
Oświadczenia dotyczące przełącznika Java — często zadawane pytania
Jak używać instrukcji switch w Javie
Aby użyć instrukcji switch w Javie, możesz użyć następującej składni:
przełącznik (wyrażenie) {
wartość przypadku 1:
// kod do wykonania, jeśli wyrażenie ma wartość 1
przerwa;
wartość przypadku2:
// kod do wykonania, jeśli wyrażenie jest równe wartość2
przerwa;
//… więcej przypadków
domyślny:
// kod do wykonania, jeśli żaden z powyższych przypadków nie pasuje
}
Czy możemy przekazać wartość null do przełącznika
Nie, nie możesz przekazać NULL do instrukcji switch, ponieważ w jej przypadku wymagają one stałego wyrażenia.
Czy możesz wrócić do instrukcji switch
Nie, instrukcje switch budują przepływ sterowania w programie, więc nie można go cofnąć po wyjściu z przypadku przełącznika.