boolean în Java

Tipul pentru valori logice: true sau false. Condițiile din if, while și for trebuie să fie boolean.

Sintaxă
boolean activ = true;
boolean majorat = varsta >= 18;
if (activ && majorat) { ... }

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 de if (x == 5): în Java nu compilează pentru int, dar pentru o variabilă boolean if (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: scrie if (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.