Ja ( &&) ja tai ( ||) -operaattoreista on myös versiot, joilla aina evaluoidaan (suoritetaan) kaikki lausekkeen osat, vaikka ehdon arvo selviäisi jo aikaisemminkin.
& ja - suorittaa aina lauskekkeen molemmat puolet | tai - suorittaa aina lausekkeen molemmat puolet
Aikasempaa esimerkkiä mukaellen:
if ( a != 0 | ( (b=c)==0 ) ) System.out.println("Kukkuu");
Tai-operaattorin ( |) oikealla puolella oleva sijoitus suoritetaan riippumatta a: n arvosta:
a
|
b
|
c
|
|
sij.suor
|
tulostetaan
|
|
0 0 5 5
|
? ? ? ?
|
0 3 0 3
|
|
kyllä kyllä kyllä kyllä
|
kyllä ei kyllä kyllä
|
|
Vastaavasti olisi paha virhe kirjoittaa:
if ( (jono != null) & jono.equals("kissa") ) tulosta("On kissa"); :-(