previous next Up Title Contents Index

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;


previous next Up Title Contents Index