Co to jest obudowa przełącznika w Javie i jak z niej korzystać?

Opublikowany: 2022-03-04

Przypadek przełącznika w Javie jest jedną z wielu instrukcji Javy, które mówią językowi programowania, co ma zrobić. Podobnie jak zdania w języku angielskim, które dają pełny obraz tekstu i zawierają klauzule, instrukcje Java są poleceniami zawierającymi jedno lub więcej wyrażeń wykonywanych przez interpreter Java. Mówiąc prościej, instrukcja Java to instrukcja wyjaśniająca, co powinno się wydarzyć.

Instrukcja Java kończy się średnikiem (;) i mówi Javie, aby przetworzyła instrukcje aż do tego średnika. Domyślnie interpreter Java postępuje zgodnie z kolejnością pisania instrukcji i uruchamia jedną instrukcję po drugiej. Jednak instrukcje sterujące przepływem programu (instrukcje kontroli przepływu), takie jak pętle i instrukcje warunkowe, nie są zgodne z domyślną kolejnością wykonywania. Ten artykuł koncentruje się na jednym z takich mechanizmów kontroli wyboru — instrukcji Java switch case.

Spis treści

Co to jest przypadek przełącznika w Javie?

Java obsługuje trzy rodzaje instrukcji: instrukcje wyrażeń do zmiany wartości zmiennych, wywoływania metod i tworzenia obiektów, instrukcje deklaracji do deklarowania zmiennych oraz instrukcje przepływu sterowania do określania kolejności wykonywania instrukcji.

Instrukcja przełącznika przypadku Java jest typem instrukcji przepływu sterowania, która umożliwia wartości wyrażenia lub zmiennej zmianę przepływu sterowania wykonywaniem programu przez rozgałęzienie wielokierunkowe. W przeciwieństwie do instrukcji if-then i if-then-else, instrukcja switch Java ma kilka ścieżek wykonania. Zmiana wielkości liter w Javie działa z podstawowymi typami danych short, byte, int i char. Od JDK7, przełącznik Java może być również używany z klasą String, typami wyliczanymi i klasami Wrapper, które otaczają pierwotne typy danych, takie jak Byte, Character, Integer i Short.

Treść instrukcji switch case w Javie nazywana jest blokiem switch. Każda instrukcja w bloku switch jest oznaczona przy użyciu co najmniej jednej wielkości liter lub etykiet domyślnych. W związku z tym instrukcja switch ocenia swoje wyrażenie, po czym następuje wykonanie wszystkich instrukcji, które następują po pasującej etykiecie wielkości liter.

Poniżej podano składnię instrukcji switch case:

// przełącz oświadczenie

przełącznik (wyrażenie)

{

// instrukcje przypadku

// wartości muszą być tego samego typu wyrażenia

wartość przypadku1 :

// Sprawozdania

zepsuć; // przerwa jest opcjonalna

wartość przypadku2 :

// Sprawozdania

zepsuć; // przerwa jest opcjonalna

// Możemy mieć dowolną liczbę stwierdzeń przypadku

// poniżej znajduje się instrukcja default, używana, gdy żaden z przypadków nie jest prawdziwy.

// W domyślnym przypadku nie jest potrzebna żadna przerwa.

domyślna :

// Sprawozdania

}

Przykład instrukcji przełącznika Java

Poniższy przykład kodu Java deklaruje int o nazwie „miesiąc”, którego wartość reprezentuje jeden z 12 miesięcy w roku. Kod używa instrukcji switch case, aby wyświetlić nazwę miesiąca na podstawie wartości miesiąca.

public class SwitchPrzykład {

public static void main(String[] args) {

miesiąc mies. = 6;

Ciąg miesiąc Ciąg;

przełącznik (miesiąc) {

przypadek 1: monthString = “styczeń”;

zepsuć;

przypadek 2: miesiącString = „luty”;

zepsuć;

przypadek 3: miesiącString = „Marzec”;

zepsuć;

przypadek 4: monthString = “kwiecień”;

zepsuć;

przypadek 5: miesiącString = „Maj”;

zepsuć;

przypadek 6: monthString = “czerwiec”;

zepsuć;

przypadek 7: monthString = „Lipiec”;

zepsuć;

przypadek 8: monthString = “Sierpień”;

zepsuć;

przypadek 9: monthString = „Wrzesień”;

zepsuć;

przypadek 10: monthString = „Październik”;

zepsuć;

przypadek 11: monthString = „listopad”;

zepsuć;

przypadek 12: monthString = „Grudzień”;

zepsuć;

domyślnie: monthString = "Nieprawidłowy miesiąc";

zepsuć;

}

System.out.println(Ciąg miesiąca);

}

}

Wyjście: czerwiec

Cel instrukcji break w przypadku przełącznika Java

Instrukcja break jest istotnym aspektem przypadku przełącznika Java, który kończy otaczającą ją instrukcję switch. Instrukcja break jest wymagana, ponieważ bez niej instrukcje w bloku switch nie będą działać. W związku z tym, niezależnie od wyrażenia kolejnych etykiet case, wszystkie instrukcje po pasującej etykiecie case są wykonywane sekwencyjnie, aż do napotkania instrukcji break.

Poniższy kod jest przykładem pokazującym blok przełącznika, który przechodzi w przypadku braku instrukcji break.

public class SwitchExample FallThrough {

public static void main(String[] args) {

java.util.ArrayList<String> futureMonths =

nowy java.util.ArrayList<String>();

miesiąc mies. = 6;

przełącznik (miesiąc) {

przypadek 1: futureMonths.add(„styczeń”);

przypadek 2: futureMonths.add(„luty”);

przypadek 3: futureMonths.add(„Marzec”);

przypadek 4: futureMonths.add(„Kwiecień”);

przypadek 5: futureMonths.add(„Maj”);

przypadek 6: futureMonths.add(„czerwiec”);

przypadek 7: futureMonths.add(„lipiec”);

przypadek 8: futureMonths.add(„Sierpień”);

przypadek 9: futureMonths.add(„wrzesień”);

przypadek 10: futureMonths.add(„Październik”);

przypadek 11: futureMonths.add(„Listopad”);

przypadek 12: futureMonths.add(„Grudzień”);

zepsuć;

domyślnie: przerwa;

}

if (futureMonths.isEmpty()) {

System.out.println("Nieprawidłowy numer miesiąca");

} w przeciwnym razie {

for (String nazwa miesiąca : futureMonths) {

System.out.println(nazwa miesiąca);

}

}

}

}

Wyjście:

czerwiec

lipiec

sierpień

wrzesień

październik

Listopad

grudzień

Powyższy kod wyświetla miesiąc roku odpowiadający miesiącowi całkowitemu i kolejnym miesiącom. W tym przypadku instrukcja final break nie ma żadnego sensu, ponieważ przepływ wypada z instrukcji switch. Użycie instrukcji break jest pomocne, ponieważ sprawia, że ​​kod jest mniej podatny na błędy i łatwiejszy do modyfikacji. Sekcja default w kodzie obsługuje wszystkie wartości, które nie są regulowane przez żadną z sekcji case.

Oświadczenie przełącznika Java z wieloma etykietami wielkości liter

Instrukcje Switch w Javie mogą również mieć wiele etykiet wielkości liter. Poniższy kod ilustruje to samo – tutaj obliczana jest liczba dni w danym miesiącu roku.

klasa SwitchMultiple{

public static void main(String[] args) {

int miesiąc = 2;

rok wewnętrzny = 2020;

int liczbaDni = 0;

przełącznik (miesiąc) {

przypadek 1: przypadek 3: przypadek 5:

przypadek 7: przypadek 8: przypadek 10:

przypadek 12:

liczbaDni = 31;

zepsuć;

przypadek 4: przypadek 6:

przypadek 9: przypadek 11:

liczbaDni = 30;

zepsuć;

przypadek 2:

jeśli (((rok % 4 == 0) &&

!(rok % 100 == 0))

|| (rok % 400 == 0))

liczbaDni = 29;

w przeciwnym razie

liczbaDni = 28;

zepsuć;

domyślna:

System.out.println("Nieprawidłowy miesiąc.");

zepsuć;

}

System.out.println("Liczba dni = "

+ numDni);

}

}

Wyjście:

Liczba dni = 29

Zagnieżdżone instrukcje przypadku przełącznika Java

Przełącznik zagnieżdżony ma miejsce wtedy, gdy używasz przełącznika jako części sekwencji instrukcji przełącznika zewnętrznego. W tym przypadku nie ma konfliktu między stałymi case w drugim przełączniku a tymi w przełączniku wewnętrznym, ponieważ instrukcja switch definiuje swój własny blok.

Poniższy przykład ilustruje użycie zagnieżdżonych instrukcji switch-case w języku Java :

public class TestNest {

public static void main(String[] args)

{

Gałąź ciągu = „CSE”;

rok wewnętrzny = 2;

przełącznik (rok) {

przypadek 1:

System.out.println(„Kursy do wyboru: Algebra, Advance English”);

zepsuć;

przypadek 2:

przełącznik (oddział) // przełącznik zagnieżdżony

{

sprawa „CSE”:

sprawa „CCE”:

System.out.println(„Kursy do wyboru: Big Data, Uczenie maszynowe”);

zepsuć;

przypadek „ECE”:

System.out.println(„kursy do wyboru : Inżynieria anten”);

zepsuć;

domyślna:

System.out.println(„Kursy do wyboru : Optymalizacja”);

}

}

}

}

Wyjście:

Przedmioty do wyboru: Big Data, Machine Learning

Użycie ciągów znaków w instrukcjach switch

Począwszy od JDK7, w wyrażeniu instrukcji switch można używać obiektu String. Porównanie obiektu ciągu w wyrażeniu instrukcji switch ze skojarzonymi wyrażeniami każdej etykiety case jest tak, jakby używało metody String.equals. Ponadto porównywanie obiektów ciągów w wyrażeniu instrukcji switch rozróżnia wielkość liter.

Poniższy przykład kodu wyświetla typ gry na podstawie wartości ciągu o nazwie „gra”.

public class StringInSwitchStatementExample {

public static void main(String[] args) {

Gra strunowa = „Cricket”;

przełącz (gra){

sprawa „Siatkówka”: sprawa”Piłka nożna”: sprawa”Cricket”:

System.out.println("To jest gra na świeżym powietrzu");

zepsuć;

przypadek”Gry karciane”:przypadek”Szachy”:przypadek”Zagadki”:przypadek”Koszykówka halowa”:

System.out.println("To jest gra w pomieszczeniu");

zepsuć;

domyślna:

System.out.println("Co to za gra?");

}

}

}

Wyjście:

To jest gra na świeżym powietrzu

Zasady, o których należy pamiętać podczas korzystania z instrukcji przełącznika Java

Najlepiej byłoby, gdybyś pamiętał o pewnych regułach podczas używania instrukcji switch Java . Poniżej znajduje się lista tego samego:

  • Wartość przypadku i zmiennej w przełączniku powinny mieć ten sam typ danych.
  • Instrukcje przełącznika Java nie zezwalają na zduplikowane wartości wielkości liter.
  • Wartość przypadku powinna być literałem lub stałą. Zmienne są niedozwolone.
  • Użycie instrukcji break wewnątrz przełącznika kończy sekwencję instrukcji.
  • Instrukcja break jest opcjonalna i jej pominięcie spowoduje kontynuowanie wykonywania w kolejnym przypadku.
  • Instrukcja default jest również opcjonalna i może wystąpić w dowolnym miejscu w bloku switch. Jeśli nie jest umieszczony na końcu, po instrukcji default należy dodać instrukcję break, aby pominąć wykonanie następnej instrukcji case.

Droga naprzód

Java ma niezrównaną popularność wśród programistów i programistów i jest obecnie jednym z najbardziej pożądanych języków programowania. Nie trzeba dodawać, że początkujący programiści i inżynierowie oprogramowania, którzy chcą podnosić swoje umiejętności na stale zmieniającym się rynku pracy, muszą zdobyć przyczółek nad swoimi umiejętnościami w języku Java.

Certyfikacja PG związana z pracą w inżynierii oprogramowania upGrad jest specjalnie zaprojektowana dla nowicjuszy i kandydatów na ostatnim roku, którzy chcą nauczyć się kodować i dostać się do podstawowych ról programistycznych.

Jeśli zastanawiasz się, co oznacza 5-miesięczny kurs online, oto kilka najważniejszych informacji, które podsuną Ci pomysł:

  • Zdobądź stos MERN i specjalizacje natywne dla chmury
  • Zdobądź najlepsze umiejętności, takie jak bazy danych Java, DSA, CSS3, HTML5, AWS, MERN, SQL i NoSQL i nie tylko
  • Ponad 500 godzin treści z ponad 350 godzinami praktycznego szkolenia
  • Pięć projektów branżowych i ponad 50 sesji na żywo
  • Przygotowanie do stażu i poradnictwo zawodowe
  • Fora dyskusyjne i silna sieć rówieśnicza

Jeśli chcesz rozpocząć swoją podróż w kierunku obiecującej kariery w inżynierii oprogramowania, oto Twoja szansa, aby uczyć się od najlepszych.

1. Co to jest przypadek w instrukcji switch?

Instrukcja switch w Javie umożliwia testowanie równości zmiennej z listą wartości. Tutaj każda wartość jest nazywana przypadkiem, a włączona zmienna jest sprawdzana dla każdego z przypadków.

2. Jakie są zalety obudowy przełącznika?

Podstawową zaletą instrukcji switch case w języku Java w porównaniu z tradycyjnymi kaskadami if-else jest to, że ta pierwsza umożliwia programistom pisanie bardziej zwartego, przejrzystego i czytelnego kodu. Z drugiej strony, instrukcje if-else często zawierają wiele powtórzeń kodu. Jeśli więc chcemy zmienić konkretną część kodu, musielibyśmy dokonać zmian w innych miejscach. Aby uniknąć tego czasochłonnego i podatnego na błędy procesu, rozsądniej jest używać skrzynek przełączników.

3. Jaka jest różnica między przypadkiem przełącznika a if-else?

W przypadku instrukcji switch sprawy są wykonywane sekwencyjnie jeden po drugim, aż do napotkania słowa kluczowego break lub wykonania instrukcji default. Wręcz przeciwnie, w przypadku instrukcji if-else, blok „if” lub „else” jest wykonywany w zależności od warunku.