Valutazione completa

Gli operatori logici hanno due versioni

public class Valutazione
{
   public static void main(String args[])
   {
      System.out.println(f1() && f2());
      System.out.println(f1() &  f2());
   }
   public static boolean f1()
   {
      System.out.print("Parte f1() ");
      return false;
   }
   public static boolean f2()
   {
      System.out.print(" - Parte f2() ");
      return true;
   }
}

L’output del programma precedente è

Parte f1() false
Parte f1() - Parte f2() false

Quando gli operandi sono metodi la differenza è sostanziale perché valutare un metodo significa chiamarlo, ed eseguirlo con possibili effetti collaterali.