Instrukcja Switch w Java

โšก Inteligentne podsumowanie

Instrukcja Switch w Java to konstrukcja warunkowa, ktรณra wykonuje tylko blok pasujฤ…cy do danej wartoล›ci wejล›ciowej. Porรณwnuje liczbฤ™ caล‚kowitฤ… lub znak z wieloma etykietami case, uลผywajฤ…c break do wyjล›cia i default dla niedopasowanych wartoล›ci.

  • ๐Ÿ”€ Zdefiniowano przeล‚ฤ…cznik: Instrukcja warunkowa, ktรณra uruchamia tylko przypadek pasujฤ…cy do wartoล›ci wejล›ciowej.
  • ๐Ÿท๏ธ Etykiety na etui: W kaลผdym przypadku podana jest wartoล›ฤ‡ i dwukropek, po ktรณrych nastฤ™pujฤ… polecenia do wykonania.
  • โ›” Przerwa: Opuszcza blok przeล‚ฤ…czania po wykonaniu pasujฤ…cego przypadku.
  • ๐Ÿงฏ Zaniedbanie: Dziaล‚a, gdy ลผaden przypadek nie pasuje do podanej wartoล›ci wejล›ciowej.
  • โšก Dlaczego go uลผywaฤ‡: Czystsze i szybsze niลผ zagnieลผdลผone ifโ€ฆelse dla wielu warunkรณw; akceptuje liczby caล‚kowite, znaki i (Java 8+) strun.

Instrukcja Switch w Java

Instrukcje przeล‚ฤ…czania w Java

Wszyscy regularnie uลผywamy przeล‚ฤ…cznikรณw w naszym ลผyciu. Tak, mรณwiฤ™ o przeล‚ฤ…cznikach elektrycznych, ktรณrych uลผywamy do oล›wietlenia i wentylatorรณw. Jak widaฤ‡ na poniลผszym obrazku, kaลผdy przeล‚ฤ…cznik jest przypisany do obsล‚ugi konkretnego sprzฤ™tu elektrycznego. Na przykล‚ad na obrazku pierwszy przeล‚ฤ…cznik jest do wentylatora, nastฤ™pny do ล›wiatล‚a itd. W ten sposรณb moลผemy zobaczyฤ‡, ลผe kaลผdy przeล‚ฤ…cznik moลผe aktywowaฤ‡/dezaktywowaฤ‡ tylko 1 element.

Java Samouczek dotyczฤ…cy obudowy przeล‚ฤ…cznika

W czym jest Switch Case Java?

Podobnie, wล‚ฤ…cz siฤ™ Java jest typem instrukcji warunkowej, ktรณra aktywuje tylko pasujฤ…cy warunek spoล›rรณd podanych danych wejล›ciowych. Rozwaลผmy przykล‚ad programu, w ktรณrym uลผytkownik podaje dane wejล›ciowe jako wartoล›ฤ‡ liczbowฤ… (w tym przykล‚adzie tylko 1 cyfrฤ™), a dane wyjล›ciowe powinny byฤ‡ liczbฤ… sล‚รณw. zmienna caล‚kowita iSwitch, to wejล›cie umoลผliwiajฤ…ce dziaล‚anie przeล‚ฤ…cznika.

Rรณลผne dostฤ™pne opcje (odczyt przypadkรณw) sฤ… nastฤ™pnie zapisywane jako przypadki wraz z dwukropkiem โ€ž:โ€

Bฤ™dzie to zawieraล‚o instrukcjฤ™ do wykonania, jeล›li przypadek i dane wejล›ciowe przeล‚ฤ…cznika bฤ™dฤ… zgodne.

Java Przykล‚ad przypadku przeล‚ฤ…cznika

class SwitchBoard{
 public static void main(String args[]){
   int iSwitch=4;
   switch(iSwitch){
     case 0:
     System.out.println("ZERO");
     break;

     case 1:
     System.out.println("ONE");
     break;

     case 2:
     System.out.println("TWO");
     break;

     case 3:
     System.out.println("THREE");
     break;

     case 4:
     System.out.println("FOUR");
     break;

     default:
     System.out.println("Not in the list");
     break;
 }
}
}

Oczekiwany wynik:

FOUR

Co teraz robiฤ… te dwa sล‚owa break i default leลผฤ…ce tam?

  • Pierwszy z nich โ€žprzerwaโ€ โ€“ po prostu wyrwie siฤ™ z bloku przeล‚ฤ…cznikรณw, gdy warunek zostanie speล‚niony.
  • โ€žDomyล›lneโ€ โ€“ zostanie wykonane, jeล›li ลผaden z warunkรณw nie pasuje do danego wejล›cia.

W podanym przykล‚adzie sฤ… to proste polecenia print, jednak mogฤ… one rรณwnieลผ odnosiฤ‡ siฤ™ do sytuacji bardziej zล‚oลผonych, jak wywoล‚anie metody itp.

A co jeล›li nie zapewnisz sobie przerwy?

W przypadku braku break, zostanฤ… wykonane pasujฤ…ce warunki, a takลผe domyล›lny warunek. Twoja logika zwariuje, jeล›li tak siฤ™ stanie. Pozostawiฤ™ uลผytkownikom eksperymentowanie bez uลผywania break.

Java Instrukcja zamiany

  • Zgodnie ze standardowฤ… logikฤ… programowania, moลผna to po prostu osiฤ…gnฤ…ฤ‡ za pomocฤ… warunkรณw ifโ€ฆelse, ale wรณwczas nie zostanie to zoptymalizowane pod kฤ…tem dobrych praktyk programowania, a kod nie bฤ™dzie wyglฤ…daล‚ na czytelny.
  • W programach obejmujฤ…cych bardziej skomplikowane przypadki, scenariusze nie bฤ™dฤ… tak proste i bฤ™dฤ… wymagaล‚y wywoล‚ania kilku metod. Switch rozwiฤ…zuje ten problem i pozwala uniknฤ…ฤ‡ wielu zagnieลผdลผonych instrukcji ifโ€ฆelse. Ponadto, podczas korzystania z ifโ€ฆelse, zaleca siฤ™, aby na gรณrze znajdowaล‚ siฤ™ warunek o najwyลผszym oczekiwanym wyniku, a nastฤ™pnie kontynuowanie w sposรณb zagnieลผdลผony.
  • Niektรณre testy porรณwnawcze wykazaล‚y, ลผe w przypadku duลผej liczby iteracji w Javie przeล‚ฤ…czanie jest szybsze w porรณwnaniu do instrukcji ifโ€ฆelse.

Punkty do uwagi

  • Nie ma ograniczeล„ co do liczby przypadkรณw Java, ktรณre moลผesz mieฤ‡.
  • Przeล‚ฤ…cznik Java moลผe przyjmowaฤ‡ dane wejล›ciowe tylko jako liczby caล‚kowite lub znaki.
  • Najnowsza wersja JavaWersja 8 wprowadza takลผe dล‚ugo oczekiwanฤ… obsล‚ugฤ™ instrukcji Java switch strings.

Wiฤ™c teraz ล›miaล‚o i okablowaj wล‚asnฤ… tablicฤ™ rozdzielczฤ…!

FAQ

A Java Instrukcja switch akceptuje klasy byte, short, int, char, ich klasy opakowujฤ…ce, wyliczenia i (poniewaลผ Java 7) ciฤ…gi znakรณw. Etykiety przypadkรณw muszฤ… byฤ‡ wyraลผeniami staล‚ymi zgodnymi z typem zmiennej switch.

Bez break, wykonanie โ€žprzepadaโ€ i wykonuje pasujฤ…cy przypadek oraz wszystkie kolejne przypadki, w tym default, aลผ do break lub koล„ca bloku. Czasami jest to celowe, ale czฤ™sto jest bล‚ฤ™dem.

Tak. Poniewaลผ Java 7. Instrukcje switch obsล‚ugujฤ… wartoล›ci typu String. Instrukcje switch porรณwnujฤ… ciฤ…g za pomocฤ… metody equals(), wiฤ™c etykiety case muszฤ… byฤ‡ dokล‚adnymi literaล‚ami ciฤ…gu, uwzglฤ™dniajฤ…cymi wielkoล›ฤ‡ liter.

Sztuczna inteligencja potrafi analizowaฤ‡ dล‚ugie ล‚aล„cuchy instrukcji if-else, identyfikowaฤ‡ pojedynczฤ… porรณwnywanฤ… zmiennฤ… i przeksztaล‚caฤ‡ je w bardziej przejrzyste instrukcje switch z odpowiednimi etykietami case i instrukcjami break, co poprawia czytelnoล›ฤ‡ i wydajnoล›ฤ‡.

Tak. Systemy linterowe wspomagane przez sztucznฤ… inteligencjฤ™ mogฤ… sygnalizowaฤ‡ przypadki, w ktรณrych brakuje instrukcji break i ktรณre mogฤ… zostaฤ‡ nieumyล›lnie przerwane, a nastฤ™pnie sugerowaฤ‡ dodanie instrukcji break lub wyraลบnego komentarza przerywajฤ…cego, aby wyjaล›niฤ‡ intencjฤ™.

Podsumuj ten post nastฤ™pujฤ…co: