Sign in Join
Wiki copytemporary

Else/fi

Deutsch · English · Español · Français · Suomi · Русский

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:

pascal
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.

pascal
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.

pascal
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.

pascal
if itIsMorning() then
    if itIsAHoliday() then
    begin
        sleep;
    end
    else
    begin
        wakeUp;
        dress;
        brushTeeth;
        ???;
    end
else
begin
    ???;
end;

Note: 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


From the Free Pascal wiki, page "Else/fi", as it stood on 2022-08-06 after a change by Kai Burghardt, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's Licensing page. If you have concerns about this material, message the admin.

Revision 2, last changed by WikiArchive .

Talk about this page

Nobody has opened a bench for this page yet. Sign in to open one.