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.