MySQL Java JavaScript PHP Python HTML-CSS C-sharp

Construcții condiționale

Unul dintre elementele fundamentale ale multor limbaje de programare sunt construcțiile condiționale. Aceste construcții permit direcționarea execuției programului pe una dintre căi, în funcție de anumite condiții.

În limbajul Java, se folosesc următoarele construcții condiționale: if..else și switch..case.

Construcția if/else

Instrucțiunea if/else verifică adevărul unei condiții și, în funcție de rezultatele verificării, execută un anumit cod:

int num1 = 6;
int num2 = 4;
if (num1 > num2) {
   System.out.println("Primul număr este mai mare decât al doilea");
}

După cuvântul cheie if urmează condiția. Dacă această condiție este adevărată, se execută codul din blocul if aflat între acolade. În acest exemplu, se compară două numere.

Deoarece primul număr este mai mare decât al doilea, expresia num1 > num2 este adevărată și returnează true. Prin urmare, se execută blocul de cod care afișează mesajul "Primul număr este mai mare decât al doilea". Dacă primul număr ar fi fost mai mic sau egal cu al doilea, instrucțiunile din blocul if nu ar fi fost executate.

Dacă dorim să efectuăm acțiuni și atunci când condiția nu este îndeplinită, putem adăuga blocul else:

int num1 = 6;
int num2 = 4;
if (num1 > num2) {
   System.out.println("Primul număr este mai mare decât al doilea");
} else {
   System.out.println("Primul număr este mai mic decât al doilea");
}

La compararea numerelor, pot exista trei situații: primul număr este mai mare, mai mic sau egal cu al doilea. Cu ajutorul expresiei else if, putem trata condiții suplimentare:

int num1 = 6;
int num2 = 8;
if (num1 > num2) {
   System.out.println("Primul număr este mai mare decât al doilea");
} else if (num1 < num2) {
   System.out.println("Primul număr este mai mic decât al doilea");
} else {
   System.out.println("Numerele sunt egale");
}

Putem, de asemenea, să combinăm mai multe condiții folosind operatori logici:

int num1 = 8;
int num2 = 6;
if (num1 > num2 && num1 > 7) {
   System.out.println("Primul număr este mai mare decât al doilea și mai mare decât 7");
}

În acest exemplu, blocul if va fi executat doar dacă ambele condiții num1 > num2 și num1 > 7 sunt adevărate.

Construcția switch

Construcția switch/case este similară cu if/else, deoarece permite tratarea mai multor condiții simultan:

int num = 8;
switch (num) {
   case 1:
       System.out.println("Numărul este 1");
       break;
   case 8:
       System.out.println("Numărul este 8");
       num++;
       break;
   case 9:
       System.out.println("Numărul este 9");
       break;
   default:
       System.out.println("Numărul nu este 1, 8 sau 9");
}

După cuvântul cheie switch, în paranteze este plasată expresia de comparat. Valoarea acestei expresii este comparată secvențial cu valorile specificate după cuvântul case. Dacă se găsește o potrivire, se execută blocul corespunzător.

La finalul fiecărui bloc case se folosește operatorul break pentru a evita executarea altor blocuri. De exemplu, dacă eliminăm break din următorul caz:

case 8:
   System.out.println("Numărul este 8");
   num++;
case 9:
   System.out.println("Numărul este 9");
   break;

Blocul case 8 va fi executat, dar în absența operatorului break, va începe și executarea blocului case 9.

Dacă dorim să tratăm și situația în care nu există nicio potrivire, putem adăuga blocul default, cum am făcut în exemplul de mai sus. Totuși, blocul default nu este obligatoriu.

Putem specifica aceeași acțiune pentru mai multe blocuri case consecutiv:

int num = 3;
int output = 0;
switch (num) {
   case 1:
       output = 3;
       break;
   case 2:
   case 3:
   case 4:
       output = 6;
       break;
   case 5:
       output = 12;
       break;
   default:
       output = 24;
}
System.out.println(output);

Operația ternară

Operația ternară are următoarea sintaxă: [primul operand - condiția] ? [al doilea operand] : [al treilea operand]. Această operație implică trei operanzi. În funcție de condiție, operația ternară returnează al doilea sau al treilea operand: dacă condiția este true, se returnează al doilea operand; dacă este false, se returnează al treilea operand. De exemplu:

int x = 3;
int y = 2;
int z = x < y ? (x + y) : (x - y);
System.out.println(z);

Aici, rezultatul operației ternare este variabila z. Mai întâi se verifică condiția x < y. Dacă aceasta este adevărată, z va fi egal cu al doilea operand - (x + y); în caz contrar, z va fi egal cu al treilea operand (x - y).

← Lecția anterioară Lecția următoare →