Loogiset lausekkeet suoritetaan AINA vasemmalta oikealle, kunnes ehdon arvo on selvinnyt.
Siis: Loogisen lausekkeen evaluoiminen lopetetaan heti kun ehdon arvo selviää ( boolean expression shortcut).
Esimerkiksi:
if ( a || ( (b=c)==0 ) ) printf("Kukkuu\n");
Tai-operaattorin ( ||) oikealla puolella oleva sijoitus suoritetaan vain mikäli a==0:
a
|
b
|
c
|
|
sij.suor
|
tulostetaan
|
|
0 0 5 5
|
? ? ? ?
|
0 3 0 3
|
|
kyllä kyllä ei ei
|
kyllä ei kyllä kyllä
|
|
Tätä ominaisuutta voidaan käyttää hyväksi esimerkiksi tiedostoja luettaessa:
while ( f && f >> luku ) summa += luku;
Tällöin lopussa olevaa tiedostoa ei enää lueta, koska AND- operaation (&&) arvo voidaan päättää epätodeksi heti ensimmäisestä osalauseesta. Tosin edellinen silmukka toimii myös muodossa
while ( f >> luku ) summa += luku;