Instrucțiunea if-else
Sintaxă:
if (expresie)
{ ... lista
instrucțiuni } else { ... lista
instrucțiuni } |
Semantică:
Se
evaluează expresia dintre paranteze care trebuie sa returneze o valoare
booleană. Dacă ea returnează true
atunci se execută lista de instrucțiuni din corpul if. Dacă ea returnează false se execută lista de instrucțiuni else.
Exemplu:
int x = 4; if( x % 2 == 0 ) x = 100; else x = 1000; |
❗ Instrucțiunea if poate avea mai multe forme:
Instrucțiunea switch-case
Sintaxă:
switch (expresie) { case valoare_particulara1 : <
expresie 1 > break; case valoare_particulara2 : <
expresie 2 > break; … default : < expresie > } |
Semantică:
Execuţia
instrucțiunii switch începe întotdeauna prin evaluarea expresiei
dintre parantezele rotunde. Această expresie trebuie să fie de tipul caracter,
octet, întreg scurt sau întreg. Selectorul instrucțiunii switch poate fi și de tip String începând cu versiunea Java 7.
După evaluarea
expresiei se trece la compararea valorii rezultate cu valorile particulare
specificate în etichetele case din interiorul blocului de instrucțiuni. Dacă una
dintre valorile particulare este egală cu valoarea expresiei, se execută
instrucțiunile începând de la eticheta case corespunzătoare acelei valori în jos, până
la capătul blocului. Dacă nici una dintre valorile particulare specificate nu
este egală cu valoarea expresiei, se execută instrucțiunile care încep cu
eticheta default, dacă aceasta există.
Este important ca fiecare expresie de tip case să
fie terminată cu instrucțiunea break deoarece aceasta asigura ieșirea din
structură.
Notă!
1.
Constantele
case trebuie să fie de același tip ca
și selectorul.
2.
Nu
pot exista 2 constante case cu
același nume.
3.
Cel
mult o constantă poate fi asociată unui selector.
Exemplu switch cu selector de tip int:
public class Main{
public static void main(String[] args) {
int selector = 2;
switch(selector){
case 1:
System.out.println("Valoarea este egala cu 1");
break;
case 2:
System.out.println("Valoarea este egala cu 2");
break;
case 3:
System.out.println("Valoarea este egala cu 3");
break;
case 4:
System.out.println("Valoarea este egala cu 4");
break;
default:
System.out.println("Valoarea nu aparține intervalului");
}
}}
Rezultat:
Exemplu switch cu break omis:
public class Main{
public static void main(String[] args) {
int selector = 6;
switch(selector){
case 2:
case 4:
case 6:
case 8:
System.out.println("Numar par");
break;
default:
System.out.println("Numar impar");
}
}}
Rezultat:
Notă! Într-un switch, dacă nu pui break, programul continuă să execute și instrucțiunile din cazurile următoare. Acest comportament se numește fall-through.
Poate fi util pentru a grupa cazuri similare, dar dacă uiți break din greșeală, programul poate produce rezultate neașteptate.
Exemplu switch cu selector de tip String:
public class Main{
public static void main(String[] args) {
String luna = "Iunie";
switch (luna) {
case "Iunie":
case "Iulie":
case "August":
System.out.println("E vară");
break;
default:
System.out.println("Nu e vară");
}
}}
Exemplu de expresie cu switch: Începând cu Java 12, instrucțiunea switch a fost extinsă și poate fi folosită nu doar ca o structură de control, ci și ca o expresie care returnează o valoare.