1. Operatorul cu variante multiple:switch
Java are un alt operator interesant pe care l-a moștenit de la bunicul său (C++). Vorbim despre switch
declarație. L-am putea numi și un operator cu alegere multiplă. Pare puțin greoi:
switch(expression)
{
case value1: code1;
case value2: code2;
case value3: code3;
}
O expresie sau o variabilă este indicată între paranteze. Dacă valoarea expresiei este value1
, mașina Java începe să execute code1
. Dacă expresia este egală cu value2
, execuția sare la code2
. Dacă expresia este egală cu value3
, atunci code3
este executată.
Exemplu:
Cod | Ieșire de consolă |
---|---|
|
|
2. break
declarație înswitch
O caracteristică importantă a unei switch
instrucțiuni este că programul pur și simplu sare la linia necesară (la blocul de cod necesar) și apoi execută toate blocurile de cod până la sfârșitul switch
. Nu numai blocul de cod corespunzător valorii din switch
, ci toate blocurile de cod până la sfârșitul switch
.
Exemplu:
Cod | Ieșire de consolă |
---|---|
|
|
Având în vedere o temperatură de 36, programul va introduce switch
instrucțiunea, va sări și va executa primul bloc de cod (primul caz), apoi va executa cu bucurie restul blocurilor de cod.
Dacă doriți să executați un singur bloc de cod — blocul de cod asociat cu cazul potrivit — atunci trebuie să încheiați blocul cu o break
instrucțiune;
Exemplu:
Cod | Ieșire de consolă |
---|---|
|
|
Puteți omite break
în ultimul caz al instrucțiunii switch
, deoarece acel bloc este ultimul cu sau fără o instrucțiune break.
3. Acțiune implicită:default
Un alt punct important. Ce se întâmplă dacă niciunul dintre cazurile enumerate în paranteză nu se switch
potrivește cu expresia din paranteze?
Dacă nu se găsește un caz care se potrivește, atunci restul instrucțiunii switch
este omis, iar programul va continua execuția după acolada care încheie instrucțiunea switch
.
Acestea fiind spuse, puteți face ca o switch
declarație să se comporte ca ramura else dintr-o if-else
declarație. Pentru a face acest lucru, utilizați default
cuvântul cheie.
Dacă niciunul dintre case
s-urile din switch
bloc nu se potrivește cu valoarea expresiei și are switch
un default
bloc, blocul implicit va fi executat. Exemplu:
Cod | Ieșire de consolă |
---|---|
|
|
4. Comparând switch
șiif-else
Afirmația switch
este oarecum asemănătoare cu o if-else
afirmație, doar că mai complicată.
Puteți oricând rescrie codul unei declarații ca instrucțiuni switch
multiple . if
Exemplu:
Cod cu comutator | Codați cu if-else |
---|---|
|
|
Codul din stânga va funcționa exact la fel ca codul din dreapta.
Un lanț de if-else
instrucțiuni multiple este de preferat atunci când o if
instrucțiune conține diverse expresii complexe în fiecare caz separat.
5. Ce expresii pot fi folosite într-un switch
enunț?
Nu toate tipurile pot fi folosite ca case
etichete într-o switch
declarație. Puteți folosi literale de următoarele tipuri:
- tipuri întregi:
byte
,short
,int
,long
char
String
- orice
enum
tip
Nu puteți utiliza alte tipuri ca etichete de caz.
Exemplu de utilizare a unei declarații enum
în interiorul unei switch
declarații:
Day day = Day.MONDAY;
switch (day)
{
case MONDAY:
System.out.println("Monday");
break;
case TUESDAY:
System.out.println("Tuesday");
break;
case WEDNESDAY:
System.out.println("Wednesday");
break;
case THURSDAY:
System.out.println("Thursday");
break;
case FRIDAY:
System.out.println("Friday");
break;
case SATURDAY:
System.out.println("Saturday");
break;
case SUNDAY:
System.out.println("Sunday");
break;
}
Notă: Dacă utilizați o instrucțiune enum
în interiorul unei switch
instrucțiuni, nu trebuie să scrieți numele clasei în fața fiecărei valori din case
etichete. Este suficient să scrieți doar valoarea.
GO TO FULL VERSION