Ylös Edellinen Seuraava Otsikkosivu Hakemisto Sisällys

10.3.2 Loogisen lausekkeen suoritusjärjestys

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;


Ylös Edellinen Seuraava Otsikkosivu Hakemisto Sisällys