Sign in Join
Wiki copytemporary

Else/fi: what changed

Revision 0 to 1. Removed lines have a minus sign; added lines have a plus sign.

Title: Else/fi

OldNewLine
1+[[Reserved word/fi|Varattu sana]]`else` aloittaa sellaisen ohjelman haaran jossa kaikkia muita mainittuja tapauksia ei voida soveltaa. Se voi tapahtua
2+
3+ * [[If/fi|`if … then … else`-haarassa]] ja
4+ * [[Case|`case`]]-[[statement/fi|lauseessa]].
5+
6+## Contents
7+
8+ * 1 Semantiikka
9+ * 1.1 Vertailevia huomautuksia
10+ * 1.2 Sisäkkäiset if … then … else
11+ * 2 Katso myös
12+
13+## Semantiikka
14+
15+`Else`-haara saa "ohjelmavirran", jos mitään muuta ehtoa ei ole täytetty. Sitä ei voi yhdistää nimenomaiseen [[expression/fi|lausekeesen (expression)]], vaan se riippuu toisissa paikoissa olevista lausekkeista, joten `else`:llä ei sinänsä ole ehtoa. `If … then … else`-lauseessa, komennot suoritetaan seuraavasti:
16+```
17+if expression
18+ then trueStatement
19+ else falseStatement;
20+```
21+
22+missä `falseStatement` suoritetaan jos `expression` antaa [`false`](</index.php?title=False/fi&action=edit&redlink=1> "False/fi \(page does not exist\)") arvon.
23+
24+`Case`-lauseessa `else`-haara suoritetaan, jos mitään muuta `case`-kohtaa ei suoriteta.
25+```
26+case expression of
27+ value0: action0;
28+ value1: action1;
29+ else action2;
30+ end;
31+```
32+
33+Vain jos `expression` ei kohdistu arvoihin `value0` eikä `value1`, niin `action2` suoritetaan.
34+
35+### Vertailevia huomautuksia
36+
37+[[Pascal/fi|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 [[statement/fi|lauseen]]. Siksi `else`:n noudattamista koskeva vaatimus täyttyy.
38+```
39+if expression0 then
40+ begin
41+ action0;
42+ end
43+ else if expression1 then
44+ begin
45+ action1;
46+ end;
47+```
48+
49+### Sisäkkäiset `if … then … else`
50+
51+`if … then … else` ovat altis semanttisille virheille, jos ei käytetä [[Begin/fi|`begin`]] ja [[End/fi|`end`]] kokoamaan lauseita.
52+```
53+if itIsMorning() then
54+ if itIsAHoliday() then
55+ begin
56+ sleep;
57+ end
58+ else
59+ begin
60+ wakeUp;
61+ dress;
62+ brushTeeth;
63+ …;
64+ end
65+ else
66+ begin
67+ …;
68+ end;
69+```
70+
71+![Light bulb](https://upload.wikimedia.org/wikipedia/commons/d/d8/Nuvola_apps_ktip.png) **Huomaa:** `else` edessä osana `if … then … else`-lausetta ei sallita [[;/fi|puolipistettä (**;**)]].
72+
73+Reference guide selittää (suurin piirtein näin)
74+
75+> Sisäkkäisissä `If.. then .. else` rakenteissa voi syntyä jonkinlainen epäselvyys siitä, mikä `if` on `else`:n parina. Sääntö on, että `else` [[Keyword/fi|avainsanaa]] vastaa ensimmäistä `if` avainsanaa (haku taaksepäin) jota `else`-avainsana ei vielä vastaa.
76+
77+## Katso myös
78+
79+ * [“The `If..then..else` statement in “Free Pascal reference guide”](<https://www.freepascal.org/docs-html/ref/refsu57.html>)
80+
81+
82+**Keywords:** [[Begin|begin]] — [[Do|do]] — [[Else|else]] — [[End|end]] — [[For|for]] — [[If|if]] — [[Repeat|repeat]] — [[Then|then]] — [[Until|until]] — [[While|while]]
83+
84+---
85+*From the Free Pascal wiki, page "Else/fi", as the Internet Archive kept it on 2025-02-14. 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](/wiki-contact).*

Back to history