1. Succesiunea if
afirmațiilor
Uneori, un program trebuie să efectueze multe acțiuni diferite, în funcție de valoarea unei variabile sau de valoarea unei expresii.
Să presupunem că sarcina noastră este cam așa:
- Dacă temperatura este mai mare de
20
grade, atunci puneți o cămașă - Dacă temperatura este mai mare de
10
grade și mai mică decât (sau egală cu)20
, atunci îmbrăcați un pulover - Dacă temperatura este mai mare de
0
grade și mai mică decât (sau egală cu)10
, atunci îmbrăcați o pelerină de ploaie - Dacă temperatura este mai mică de
0
grade, atunci puneți o haină.
Iată cum poate fi reprezentat acest lucru în cod:
int temperature = 9;
if (temperature > 20)
System.out.println("put on a shirt");
else // Here the temperature is less than (or equal to) 20
{
if (temperature > 10)
System.out.println("put on a sweater");
else // Here the temperature is less than (or equal to) 10
{
if (temperature > 0)
System.out.println("put on a raincoat");
else // Here the temperature is less than 0
System.out.println("put on a coat");
}
}
If-else
instrucțiunile pot fi imbricate unele în altele. Acest lucru face posibilă implementarea unei logici destul de complexe într-un program.
Dar exemplul de mai sus este interesant și prin faptul că putem face codul puțin mai simplu, omițând acoladele:
int temperature = 9;
if (temperature > 20)
System.out.println("put on a shirt");
else // Here the temperature is less than (or equal to) 20
if (temperature > 10)
System.out.println("put on a sweater");
else // Here the temperature is less than (or equal to) 10
if (temperature > 0)
System.out.println("put on a raincoat");
else // Here the temperature is less than 0
System.out.println("put on a coat");
Cu toate acestea, programatorii scriu de obicei acest construct puțin diferit:
int temperature = 9;
if (temperature > 20)
System.out.println("put on a shirt");
else if (temperature > 10) // Here the temperature is less than (or equal to) 20
System.out.println("put on a sweater");
else if (temperature > 0) // Here the temperature is less than (or equal to) 10
System.out.println("put on a raincoat");
else // Here the temperature is less than 0
System.out.println("put on a coat");
Toate aceste trei exemple sunt echivalente.
2. Nuanțe ale else
blocului
Dacă nu folosiți acolade într-o if-else
construcție, atunci se else
referă la cel mai apropiat if
.
Exemplu:
Codul nostru | Cum va funcționa |
---|---|
|
|
Dacă te uiți la codul din stânga, se pare că ieșirea ecranului va fi „Nu trebuie să lucrezi”. Dar nu este cazul. În realitate, else
blocul și instrucțiunea „Nu trebuie să lucrezi” sunt asociate cu a doua if
declarație (cea mai apropiată).
În codul din dreapta, asociatele if
și else
sunt evidențiate cu roșu. În plus, bretele sunt plasate fără ambiguitate, arătând clar ce acțiuni vor fi efectuate. Nu se afișează niciodată șirul Tu nu trebuie să lucrezi când age
este mai mare decât 60
?
3. Exemplu de utilizare a unei if-else
declarații
Deoarece am explorat if-else
atât de bine afirmația, să dăm un exemplu:
import java.util.Scanner;
public class Solution {
public static void main(String[] args)
{
Scanner console = new Scanner(System.in); // Create a Scanner object
int a = console.nextInt(); // Read the first number from the keyboard
int b = console.nextInt(); // Read the second number from the keyboard
if (a < b) // If a is less than b
System.out.println(a); // we display a
else // otherwise
System.out.println(b); // we display b
}
}
GO TO FULL VERSION