Else/fi

From Lazarus wiki
Jump to navigationJump to search

Deutsch (de) English (en) español (es) suomi (fi) français (fr) русский (ru)

Varattu sanaelse aloittaa sellaisen ohjelman haaran jossa kaikkia muita mainittuja tapauksia ei voida soveltaa. Se voi tapahtua

Semantiikka

Else-haara saa "ohjelmavirran", jos mitään muuta ehtoa ei ole täytetty. Sitä ei voi yhdistää nimenomaiseen lausekeesen (expression), vaan se riippuu toisissa paikoissa olevista lausekkeista, joten else:llä ei sinänsä ole ehtoa. If then else-lauseessa, komennot suoritetaan seuraavasti:

if expression
	then trueStatement
	else falseStatement;

missä falseStatement suoritetaan jos expression antaa false arvon.

Case-lauseessa else-haara suoritetaan, jos mitään muuta case-kohtaa ei suoriteta.

case expression of
	value0: action0;
	value1: action1;
	else action2;
end;

Vain jos expression ei kohdistu arvoihin value0 eikä value1, niin action2 suoritetaan.

Vertailevia huomautuksia

Pascal:ssa ei ole elsif tai elif. Kuitenkin kirjoita else ja if taaksepäin ei ole ongelmaa. Huomaa että toinen if then muodostaa itsestään yhden lauseen. Siksi else:n noudattamista koskeva vaatimus täyttyy.

if expression0 then
begin
	action0;
end
else if expression1 then
begin
	action1;
end;

Sisäkkäiset if then else

if then else ovat altis semanttisille virheille, jos ei käytetä begin ja end kokoamaan lauseita.

if itIsMorning() then
	if itIsAHoliday() then
	begin
		sleep;
	end
	else
	begin
		wakeUp;
		dress;
		brushTeeth;
		;
	end
else
begin
	;
end;
Light bulb  Huomaa: else edessä osana if then else-lausetta ei sallita puolipistettä (;).

Reference guide selittää (suurin piirtein näin)

Sisäkkäisissä If.. then .. else rakenteissa voi syntyä jonkinlainen epäselvyys siitä, mikä if on else:n parina. Sääntö on, että else avainsanaa vastaa ensimmäistä if avainsanaa (haku taaksepäin) jota else-avainsana ei vielä vastaa.

Katso myös


Keywords: begindoelseendforifrepeatthenuntilwhile