Ce faci dacă plouă? Îți iei o umbrelă când ieși din casă sau pur și simplu nu ieși din casă? Poți să-ți faci un astfel de program în limbajul Java, în care ai două posibilități sau două alegeri…
Poate că ai auzit în ultima vreme (anii 2021 – 2023) de inteligența artificală. Practic, ce este inteligența artificială? Un fel de „creieraș” al unui program care ia decizii singur. Dar cum ia deciziile? Păi are de ales… Programatorii un pic mai experimentați îți vor spune că inteligența artificială se bazează foarte mult pe instrucțiunea if, în care programul alege fie A, fie B (sau mai multe, până la Z). În schimb, programatorii experți îți vor spune că nu e vorba doar de instrucțiunea if… Hai să trecem direct la jucăriile noastre!
Instrucțiunea if este o instrucțiune condițională care verifică întăi dacă este îndeplinită o condiție, iar dacă totul este în regulă (și condiția este îndeplinită) se execută codul din interiorul instrucțiunii if. Dacă nu este îndeplinită condiția (adică e totul fals, ca-n politică…), atunci se sare peste codul din interiorul instrucțiunii if și se trece la următoarea instrucțiune (fix după ce se închide acolada deschisă la if).
Exemplu general:
1| if (conditie) { 2| /* 3| dacă condiția este adevărată, atunci se execută tot ce este în interiorul acestui bloc de cod, 4| adică tot ce este între acolade 5| /* 6| // cod 7| }
Așadar, în instrucțiunea if avem totdeauna cuvântul if, iar în paranteză vom avea condiția. Dacă acea condiție este adevărată, atunci se va executa codul din interiorul blocului de cod, iar dacă nu este adevărată, atunci programul va sări peste codul din interiorul instrucțiunii if și va executa următoarea instrucțiune (oricare ar fi ea) dacă există…
if
Te rog să ții minte faptul că acea condiție de la if trebuie să returneze o valoare de tipul boolean. Îți recomand articolul Tipuri de date primitive în Java pentru a vedea ce valori poate avea o variabilă de tipul boolean. Dacă nu e mult, te rog să citești și articolul Tipul unei variabile în Java.
Dacă valoarea returnată în condiția de la if este adevărată (true), atunci se va executa codul din interiorul instrucțiunii if, iar dacă valoarea returnată este falsă (false), atunci nu se va executa codul din interiorul instrucțiunii if. Simplu?
Exemplu:
1| int a = 10; 2| if (a == 10) { 3| System.out.println("Valoarea lui a este egală cu 10"); 4| } 5| System.out.println("Instrucțiunea if");
În exemplul anterior am atribuit valoarea 10 variabilei a, iar în if am pus să verifice condiția dacă variabila a are valoarea 10. Atenție: semnele egal-egal (==) testează dacă valoarea din dreapta este egală cu valoarea din stânga. Un singur semn egal (=) atribuie valoarea din dreapta variabilei din stânga. Deci:
= (operator de atribuire)
== (operator de testare a egalității)
if – else
Instrucțiunea if poate fi urmată sau continuată cu declarația else. Cum vine asta? Păi oricum dacă e condiția falsă, programul execută următoarea instrucțiune, deci poți lucra curat și să-i spui ce să execute dacă nu intră în if. Hai să vezi un exemplu clar:
1| int a = 10; 2| if (a != 10) { 3| System.out.println("Valoarea lui A nu este 10"); 4| } else { 5| System.out.println("Valoarea lui A este 10"); 6| }
Ce va afișa codul anterior? Exact ce afișează funcția println() din blocul de cod de la else. De ce? Pentru că avem o condiție falsă. Ce spune condiția? „Variabila A nu este egală cu 10”, pe când noi avem inițializată variabila a cu valoarea 10. Programul evită ce este în blocul de cod de la if și merge la else. Putem de asemenea să avem o altă instrucțiune lângă else…
if – else if
Ce facem cu if – else if? Punem o altă condiție la else if.
1| int a = 10; 2| if (a != 10) { 3| System.out.println("Valoarea lui A nu este 10"); 4| } else if (a == 10) { 5| System.out.println("Valoarea lui A este 10"); 6| }
În exemplul anterior avem o condiție în if care testează dacă variabila a este diferită de 10, dar variabila a este egală cu 10, deci nu intrăm în if. Avem apoi structura else if, în care se verifică dacă a este egal cu 10, ceea ce este adevărat și intrăm în acel cod de bloc, iar programul va afișa „Valoarea lui A este 10”. Dar dacă nu știm deloc valoarea lui A? Să presupunem prin absurd… Atunci putem completa programul cu un else.
if – else if – else
1| int a = 100; 2| if (a < 10) { 3| System.out.println("Valoarea lui A este mai mică decât 10"); 4| } else if (a == 10) { 5| System.out.println("Valoarea lui A este 10"); 6| } else { 7| System.out.println("Valoarea lui A este mai mare decât 10"); 8| }
Acum avem o structură completă if – else if – else. Programul va afișa doar ce este în blocul de la else pentru că valoarea lui a este mai mare decât 10 și nu îndeplinește condițiile prezentate.
Ce zici de instrucțiunea if? O înțelegi?
De asemenea, poți folosi instrucțiunea if în interiorul altei instrucțiuni if (sau else if, sau else) pentru un program mai complex.
1| int a = 18; 2| if (a > 14) { 3| System.out.println("Ai deja buletin"); 4| if (a >= 18) { 5| System.out.println("Poți să dai de permisul auto..."); 6| } 7| } else if (a > 100) { 8| if (a > 80) { 9| System.out.println("Ești un pic cam măricel..."); 10| } 11| System.out.println("Cine are peste 100 de ani ar trebui să fie mega fericit!"); 12| }
Ce crezi că afișează programul anterior? Păi valoarea lui a este 18, deci este mai mare decât 14 și intrăm în structura lui if. Afișează „Ai deja buletin”, apoi verifică dacă valoarea lui a este mai mare sau egală cu 18. Cum a este egal cu 18, intrăm și în cel de-al doilea if și va afișa mesajul „Poți să dai de permisul auto…”. După aceea, vedem structura else if, dar nu ne mai interesează pentru că deja ne-am făcut treaba (ne-am consumat opțiunea) și bineînțeles că tot ce urmează nu se potrivește (condițiile fiind false), deci ne încheiem treaba cu succes.
Poți să pui câte instrucțiuni de if dorești în interiorul unei instrucțiuni if, sau chiar else if sau chiar în interiorul lui else. Te poți complica cum vrei sau cum e nevoie… Cel mai bine ar fi să folosești instrucțiunea if în mod înțelept și curat, deci fără prea multe complicații. Trebuie să știi ce vrei, nu să te tot amețești sau să ne amețești cu programul…
Învață să fii profesionist!
Sursă imagine: ANIRUDH on Unsplash