Sign in Join
Wiki copytemporary

Case/fi: what changed

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

Title: Case/fi

OldNewLine
1+Case aloittaa case-lauseen. Case-lauseessa verrataan muuttujan arvoa esitettyihin vakiona pysyviin arvoihin. Näitä vakiona pysyviä arvoja voi olla yksittäinen [[Const/fi|vakio]], tietty vakioalue tai [[Comma|pilkulla]] erotettu joukko vakioita. Tietyn valinnan jälkeen suoretettavat lauseen on erotettu [[Colon|kaksoispisteellä]].
2+
3+Case-lause sisältää [[Reserved word|varatut sanat]] [[Of]] ja [[End]] sekä joskus myös [[Else]].
4+
5+
6+
7+```
8+case place of
9+ 1: ShowMessage('Kultamitali');
10+ 2: ShowMessage('Hopeamitali');
11+ 3: ShowMessage('Pronssimitali');
12+ else ShowMessage('Parempi onni ensi kerralla');
13+ end;
14+```
15+
16+## Contents
17+
18+ * 1 WhatIsChar
19+ * 2 Case of merkkijonoissa
20+ * 3 Vaihteleva tietue
21+ * 4 Lisätietoja
22+
23+### WhatIsChar
24+```
25+function WhatIsChar( c:char ):string;
26+ var
27+ s : string;
28+ begin
29+ s := '';
30+ case c of
31+ '0' .. '9' : s := 'Numero (0-9)';
32+ 'a' .. 'z' : s := 'Pieni kirjain (a-z)';
33+ 'A' .. 'Z' : s := 'Iso kirjain (A-Z)';
34+ '+' , '-' : s := 'Etumerkki (+ or -)';
35+ end;
36+ result := s;
37+ end;
38+```
39+
40+## Case of merkkijonoissa
41+
42+Case of toimii myös merkkijonoissa. Pascal -kieli mahdollistaa "Case of" käytön string:llä.
43+```
44+const
45+ ISO_3166_1_ALPHA_3_ANDORRA = 'AND';
46+ ISO_3166_1_ALPHA_3_AUSTRALIA = 'AUS';
47+ ISO_3166_1_ALPHA_3_AUSTRIA = 'AUT';
48+ ISO_3166_1_ALPHA_3_BELGIUM = 'BEL';
49+ ISO_3166_1_ALPHA_3_BRAZIL = 'BRA';
50+ ISO_3166_1_ALPHA_3_CANADA = 'CAN';
51+ ISO_3166_1_ALPHA_3_CHINA = 'CHN';
52+ ISO_3166_1_ALPHA_3_CZECH_REPUBLIC = 'CZE';
53+ ISO_3166_1_ALPHA_3_CYPRUS = 'CYP';
54+ ISO_3166_1_ALPHA_3_GERMANY = 'DEU';
55+ ISO_3166_1_ALPHA_3_DENMARK = 'DNK';
56+ ISO_3166_1_ALPHA_3_SPAIN = 'ESP';
57+ ISO_3166_1_ALPHA_3_ESTONIA = 'EST';
58+ ISO_3166_1_ALPHA_3_FINLAND = 'FIN';
59+ ISO_3166_1_ALPHA_3_FRANCE = 'FRA';
60+ ISO_3166_1_ALPHA_3_GREECE = 'GRC';
61+ ISO_3166_1_ALPHA_3_INDIA = 'IND';
62+ ISO_3166_1_ALPHA_3_IRELAND = 'IRL';
63+ ISO_3166_1_ALPHA_3_ITALY = 'ITA';
64+ ISO_3166_1_ALPHA_3_JAPAN = 'JPN';
65+ ISO_3166_1_ALPHA_3_LITHUANIA = 'LTU';
66+ ISO_3166_1_ALPHA_3_LATVIA = 'LVA';
67+ ISO_3166_1_ALPHA_3_LUXEMBOURG = 'LUX';
68+ ISO_3166_1_ALPHA_3_MALTA = 'MLT';
69+ ISO_3166_1_ALPHA_3_MEXICO = 'MEX';
70+ ISO_3166_1_ALPHA_3_MONACO = 'MCO';
71+ ISO_3166_1_ALPHA_3_MONTENEGRO = 'MNE';
72+ ISO_3166_1_ALPHA_3_NAURU = 'NRU';
73+ ISO_3166_1_ALPHA_3_NETHERLANDS = 'NLD';
74+ ISO_3166_1_ALPHA_3_NORWAY = 'NOR';
75+ ISO_3166_1_ALPHA_3_POLAND = 'POL';
76+ ISO_3166_1_ALPHA_3_PORTUGAL = 'PRT';
77+ ISO_3166_1_ALPHA_3_REPUBLIC_OF_KOREA = 'KOR';
78+ ISO_3166_1_ALPHA_3_RUSSIAN_FEDERATION = 'RUS';
79+ ISO_3166_1_ALPHA_3_SAN_MARINO = 'SMR';
80+ ISO_3166_1_ALPHA_3_SLOVAKIA = 'SVK';
81+ ISO_3166_1_ALPHA_3_SLOVENIA = 'SVN';
82+ ISO_3166_1_ALPHA_3_SWEDEN = 'SWE' ;
83+ ISO_3166_1_ALPHA_3_SWITZERLAND = 'CHE';
84+ ISO_3166_1_ALPHA_3_UNITED_KINGDOM_OF_GREAT_BRITAIN_AND_NORTHERN_IRELAND = 'GBR';
85+ ISO_3166_1_ALPHA_3_UNITED_STATES_OF_AMERICA = 'USA';
86+
87+
88+ ISO_4217_EURO = 'EUR';
89+ ISO_4217_AUSTRALIAN_DOLLAR = 'AUD';
90+ ISO_4217_BRAZILIAN_REAL = 'BRL';
91+ ISO_4217_CANADIAN_DOLLAR = 'CAD';
92+ ISO_4217_CHINESE_YUAN = 'CNY';
93+ ISO_4217_CZECH_KORUNA = 'CZK' ;
94+ ISO_4217_DANISH_KRONE = 'DKK' ;
95+ ISO_4217_INDIAN_RUPEE = 'INR';
96+ ISO_4217_POUND_STERLING = 'GBP' ;
97+ ISO_4217_JAPANESE_YEN = 'JPY';
98+ ISO_4217_MEXICAN_PESO = 'MXN';
99+ ISO_4217_NORWEGIAN_KRONE = 'NOK' ;
100+ ISO_4217_POLISH_ZLOTY = 'PLN' ;
101+ ISO_4217_RUSSIAN_RUBLE = 'RUB' ;
102+ ISO_4217_SOUTH_KOREAN_WON = 'KRW';
103+ ISO_4217_SWEDISH_KRONA = 'SEK' ;
104+ ISO_4217_SWISS_FRANC = 'CHF' ;
105+ ISO_4217_UNITED_STATES_DOLLAR = 'USD' ;
106+
107+ function ISO_4217_currency_name ( ISO_3166_1_alpha_3_code: string): string;
108+ begin
109+ Case ISO_3166_1_alpha_3_code of
110+ // Euroalue
111+ ISO_3166_1_ALPHA_3_ANDORRA, ISO_3166_1_ALPHA_3_AUSTRIA,
112+ ISO_3166_1_ALPHA_3_BELGIUM,ISO_3166_1_ALPHA_3_CYPRUS,
113+ ISO_3166_1_ALPHA_3_GERMANY, ISO_3166_1_ALPHA_3_SPAIN,
114+ ISO_3166_1_ALPHA_3_ESTONIA, ISO_3166_1_ALPHA_3_FINLAND,
115+ ISO_3166_1_ALPHA_3_FRANCE, ISO_3166_1_ALPHA_3_GREECE,
116+ ISO_3166_1_ALPHA_3_IRELAND, ISO_3166_1_ALPHA_3_ITALY,
117+ ISO_3166_1_ALPHA_3_LITHUANIA, ISO_3166_1_ALPHA_3_LATVIA,
118+ ISO_3166_1_ALPHA_3_LUXEMBOURG, ISO_3166_1_ALPHA_3_MONACO,
119+ ISO_3166_1_ALPHA_3_MALTA, ISO_3166_1_ALPHA_3_MONTENEGRO,
120+ ISO_3166_1_ALPHA_3_NETHERLANDS, ISO_3166_1_ALPHA_3_PORTUGAL,
121+ ISO_3166_1_ALPHA_3_SAN_MARINO, ISO_3166_1_ALPHA_3_SLOVAKIA,
122+ ISO_3166_1_ALPHA_3_SLOVENIA : result := ISO_4217_EURO ;
123+
124+ ISO_3166_1_ALPHA_3_AUSTRALIA, ISO_3166_1_ALPHA_3_NAURU :
125+ result := ISO_4217_AUSTRALIAN_DOLLAR;
126+ ISO_3166_1_ALPHA_3_BRAZIL : result := ISO_4217_BRAZILIAN_REAL;
127+ ISO_3166_1_ALPHA_3_CANADA : result := ISO_4217_CANADIAN_DOLLAR;
128+ ISO_3166_1_ALPHA_3_CHINA : result := ISO_4217_CHINESE_YUAN;
129+ ISO_3166_1_ALPHA_3_CZECH_REPUBLIC : result := ISO_4217_CZECH_KORUNA ;
130+ ISO_3166_1_ALPHA_3_DENMARK : result := ISO_4217_DANISH_KRONE ;
131+ ISO_3166_1_ALPHA_3_INDIA : result := ISO_4217_INDIAN_RUPEE;
132+ ISO_3166_1_ALPHA_3_JAPAN : result := ISO_4217_JAPANESE_YEN;
133+ ISO_3166_1_ALPHA_3_MEXICO : result := ISO_4217_MEXICAN_PESO;
134+ ISO_3166_1_ALPHA_3_NORWAY : result := ISO_4217_NORWEGIAN_KRONE ;
135+ ISO_3166_1_ALPHA_3_POLAND : result := ISO_4217_POLISH_ZLOTY ;
136+ ISO_3166_1_ALPHA_3_REPUBLIC_OF_KOREA : result := ISO_4217_SOUTH_KOREAN_WON ;
137+ ISO_3166_1_ALPHA_3_RUSSIAN_FEDERATION : result := ISO_4217_RUSSIAN_RUBLE ;
138+ ISO_3166_1_ALPHA_3_SWEDEN : result := ISO_4217_SWEDISH_KRONA ;
139+ ISO_3166_1_ALPHA_3_SWITZERLAND : result := ISO_4217_SWISS_FRANC ;
140+ ISO_3166_1_ALPHA_3_UNITED_KINGDOM_OF_GREAT_BRITAIN_AND_NORTHERN_IRELAND :
141+ result := ISO_4217_POUND_STERLING ;
142+ ISO_3166_1_ALPHA_3_UNITED_STATES_OF_AMERICA :
143+ result := ISO_4217_UNITED_STATES_DOLLAR ;
144+ end;
145+ end;
146+```
147+
148+## Vaihteleva tietue
149+
150+Case-sanaa käytetään myös vaihtelevassa [[Record|tietueessa]].
151+```
152+type
153+
154+ ScaleKelvin = 223 .. 323;
155+ ScaleCelsius = -50 .. 50;
156+
157+ TemperatureScale = ( celcius, kelvin ) ;
158+ Temperature = record
159+ case scale : TemperatureScale of
160+ celcius : (celcius_value : ScaleCelsius);
161+ kelvin : (kelvin_value : ScaleKelvin);
162+ end;
163+```
164+
165+## Lisätietoja
166+
167+ * [The Case statement](<http://www.freepascal.org/docs-html/ref/refsu52.html#x149-15900013.2.2>)
168+ * [Record types](<http://www.freepascal.org/docs-html/ref/refsu19.html#x43-500003.3.2>)
169+ * [Tao Yue: Learn Pascal!](<http://lazarus-ccr.sourceforge.net/pascal/pas3cb.html>) Case
170+ * [Video: Free Pascal Tutorial 8 - Case Statements](<http://www.youtube.com/watch?v=pMr2xtUu3x0>)
171+ * [[Dialog Examples|ShowMessage]]
172+ * [[Type]]
173+
174+---
175+*From the Free Pascal wiki, page "Case/fi", as the Internet Archive kept it on 2025-03-16. 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