Tipul boolean

Mulțimea de valori a acestui tip este {true, false}. Ea conține cele două valori admise de logica booleană: true înseamnăadevărat, iar false înseamnă fals. Asupra datelor din acest tip pot fi aplicate operațiile de atribuire, de comparație (== si !=) și operațiile algebrei booleene (operațiile logice).

Operatorii booleeni

Operatorul de negație este un operator unar fără efect lateral și se reprezintă prin simbolul ! (semnul exclamării). Expresia !a, în care a este un operand boolean, se citește non-a și se interpretează ca negația lui a:  daca a are valoarea true, atunci !a are valoarea false și invers.

Operatorii logici binari sunt operatori fără efect lateral, prin care se realizează operațiile logice ȘI, SAU și SAU-EXCLUSIV.
   - Operatorii & si && realizeaza operatia logica ȘI. Expresiile a&b și a&&b ,în care a și b sunt operanzi de tip boolean, are valoarea true(adevărat) dacă și numai dacă atât a cât și b au valoarea true. În celelalte cazuri expresia are valoarea false.
   - Operatorii | si || realizează operația logică SAU. Expresiile a|b și a||b , în care a și b sunt operanzi de tip boolean, are valoarea false dacă și numai dacă ambii operanzi au valoarea false. În celelalte cazuri expresia are valoarea true.
   - Operatorul ^ realizează operatia logică SAU-EXCLUSIV. Expresia a^b , în care a și b sunt operanzi de tip boolean, are valoarea true dacă și numai dacă cei doi operanzi au valori diferite (unul este adevărat, iar celălalt fals). Dacă cei doi operanzi au valori identice, valoarea expresiei este false.
 
Deosebirile între operatorii & și &&, respectiv între | și || sunt următoarele:
   - în cazul operatorilor & și | se evaluează în mod obligatoriu ambii operanzi;
   - în cazul operatorului &&, numit ȘI-condițional, evaluarea celui de al doilea operand se face numai dacă primul operand are valoarea true; altfel, se consideră că operația dă valoarea false, fără a se mai evalua valoarea celui de al doilea operand;
   - în cazul operatorului ||, numit SAU-condițional, evaluarea celui de al doilea operand se face numai dacă primul operand are valoarea false; altfel, se consideră ca operația dă valoarea true, fără a se mai evalua valoarea celui de al doilea operand.

Vom reveni asupra acestor deosebiri când vom arăta cum sunt tratate în Java expresiile logice mai complicate.

Acțiunea operatorilor logici este prezentată sintetic în tabela de mai jos, în care a și b sunt doi operanzi logici.
a
b
a&b
a&&b
a|b
a||b
a^b
true
true
true
true
true
true
false
true
false
false
false
true
true
true
false
false
false
false
false
true
true
false
false
false
false
false
false
false

În programul din fișierul TipBoolean.java se testează unele din aceste operații booleene.
 
/* Testarea declararii variabilelor booleene si a efectului
   operatiilor logice
*/

class TipBoolean {
  public static void main(String args[]) {
    boolean alpha=true, beta=false, p, q, r,s;
    p=!alpha;
    q=alpha&β
    r=alpha||beta;
    s=alpha^beta;
    System.out.println(" alpha="+alpha+" beta="+beta+" p="+p+
      " q="+q+" r="+r+" s="+s);
    System.out.println("alpha&&beta="+(alpha&&beta)+ "alpha||beta="+(alpha||beta));
    System.out.println("alpha==beta: "+(alpha==beta));
    System.out.println("alpha!=beta: "+(alpha!=beta));
  }
}

Executând acest program se obține următorul rezultat afișat pe ecran:
 
alpha=true beta=false p=false q=false r=true s=true
alpha&&beta=false alpha||beta=true
alpha==beta: false 
alpha!=beta: true

Se observă cu ușurință că rezultatele sunt corecte.
 
Pentru programatorii de C/C++

În limbajele C/C++ nu există tipul de date boolean, astfel că în locul acestuia se folosesc datele întregi. În consecință, în aceste limbaje, operatorii & si | nu sunt considerați operatori booleeni ci operatori logici pe biți

În Java nu este permis să se utilizeze expresii aritmetice în locul unor expresii logice (booleene), așa cum se întâmplă în C/C++.



© Copyright 2000 - Severin BUMBARU, Universitatea "Dunărea de Jos" din Galați