Ce face boolean
Un boolean are doar două valori: true (adevărat) și false (fals). Îl obții din comparații (==, !=, <, >=) și îl combini cu operatorii logici && (și), || (sau) și ! (negare).
Spre deosebire de C sau JavaScript, Java nu transformă numere sau texte în valori logice: if (1) sau if (nume) nu compilează. Condiția trebuie să fie exact boolean.
&& și || sunt „scurtcircuitate”: dacă rezultatul se știe după primul operand, al doilea nu mai este evaluat. Așa poți scrie în siguranță s != null && s.isEmpty().
Exemple
Exemplul 1: Comparații și operatori logici
Rezultatul fiecărei comparații este un boolean, care se poate păstra într-o variabilă cu nume clar.
public class Main {
public static void main(String[] args) {
int varsta = 19;
double medie = 8.40;
boolean majorat = varsta >= 18;
boolean bursier = medie >= 9.0;
System.out.println("majorat: " + majorat);
System.out.println("bursier: " + bursier);
System.out.println("majorat și bursier: " + (majorat && bursier));
System.out.println("majorat sau bursier: " + (majorat || bursier));
System.out.println("nu e bursier: " + !bursier);
}
}
Rezultat
majorat: true
bursier: false
majorat și bursier: false
majorat sau bursier: true
nu e bursier: true
Exemplul 2: Scurtcircuitarea
Când oras este null, && nu mai evaluează oras.isEmpty(), deci nu apare NullPointerException.
public class Main {
static boolean areOras(String oras) {
return oras != null && !oras.isEmpty();
}
public static void main(String[] args) {
System.out.println(areOras("Iași"));
System.out.println(areOras(""));
System.out.println(areOras(null));
}
}
Rezultat
true
false
false
Greșeli frecvente
if (x = 5)în loc deif (x == 5): în Java nu compilează pentruint, dar pentru o variabilăbooleanif (gata = true)compilează și atribuie.- Folosirea lui
&sau|(fără scurtcircuitare) în loc de&&și||: ambii operanzi sunt evaluați. if (activ == true)este corect, dar redundant: scrieif (activ).
Comenzi înrudite
Operatori: Operatorii aritmetici, de comparație, logici, de atribuire, ternar și pe biți din Java, cu ordinea lor de evaluare.if și else: Execută un bloc doar dacă o condiție boolean este adevărată; else și else if tratează celelalte cazuri.while și do-while: while repetă un bloc cât timp condiția este adevărată; do-while execută blocul o dată și abia apoi verifică condiția.Variabile și tipuri primitive: O variabilă are un tip fix, declarat la creare; Java are 8 tipuri primitive: byte, short, int, long, float, double, char, boolean.