Expresia condițională

Urmând "tradiția" limbajului C, în limbajul Java există operatorul ternar (cu trei operanzi) ?:  numit operatorul condițional, care este utilizat în cadrul următoarei expresii condiționale:
    operand1 ? operand2 : operand3
unde:
    operand1  - expresie booleană;
    operand2 șioperand3 - expresii de tipuri compatibile: fie ambii operanzi de tip boolean, fie ambii de tipuri numerice, fie ambii de tipuri referință.

Evaluarea expresiei decurge astfel:
   - se evaluează operand1 obținându-se o valoare booleană;
   - dacă operand1 are valoarea true, atunci valoarea expresiei condiționale este cea care se obține evaluând operand2; altfel, este cea care se obține evaluând operand3.
 
Exemplu
În programul de mai jos, dat și în fișierul ExprCond.java, se exemplifică mai multe cazuri de utilizare a expresiei condiționale.
 
/* Testarea expresiei conditionale */

class ExprCond {
  public static void main(String args[]) {
    int m=17, n=-6, p=0, q=0;
    System.out.println(m>n ? m+1 : 2*n-2);
    System.out.println(m<=n ? 3*m : m-n);
    /* Se evalueaza numai operandul 2 */
    System.out.println((m>=6 ? ++p*n : ++q-m)+" "+p+" "+q);
    /* Se evalueaza numai operandul 3 */
    System.out.println((m<n+3 ?  m-- : n++)+" "+m+" "+n);
    /* Un exemplu in care operanzii 2 si 3 sunt tot expresii 
       conditionale
    */
    System.out.println(m>p ? (n<0? m+1 : m-2) : (m>n ? m : n));
  }
}

Executând acest program, obținem pe ecran urmatoarele rezultate:
 
18
23
-6 1 0
-6 17 -5
18

Din aceste rezultate putem constata cu ușurință că s-au evaluat de fiecare dată numai acei operanzi, care erau necesari în evaluarea expresiei condiționale. În ultima instrucțiune se ilustrează și un caz de utilizare drept operanzi a unor expresii condiționale.



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