Difference between revisions of "Case"
From Free Pascal wiki
Jump to navigationJump to search (Grammar, fixed code inconsistencies) |
m |
||
Line 58: | Line 58: | ||
* [[Dialog_Examples#ShowMessage|ShowMessage]] | * [[Dialog_Examples#ShowMessage|ShowMessage]] | ||
* [[Type]] | * [[Type]] | ||
+ | |||
+ | |||
+ | [[Category:Pascal]] |
Revision as of 14:56, 28 February 2013
│
Deutsch (de) │
English (en) │
español (es) │
suomi (fi) │
français (fr) │
русский (ru) │
Case opens a case statement. The case statement compares the value of an ordinal expression to each selector, which can be a constant, a subrange, or a list of them separated by commas. The selector field is separated from action field by Colon.
The case statement includes the reserved words Of and End. Else can be used if needed, too.
case place of
1: ShowMessage('Gold medal');
2: ShowMessage('Silver medal');
3: ShowMessage('Bronze medal');
else ShowMessage('Better luck next time');
end;
WhatIsChar
function WhatIsChar( c:char ):string;
var
s : string;
begin
s := '';
case c of
'0' .. '9' : s := 'digit (0-9)';
'a' .. 'z' : s := 'lowercase letter (a-z)';
'A' .. 'Z' : s := 'uppercase letter (A-Z)';
'+' , '-' : s := 'sign (+ or -)';
end;
result := s;
end;
Variant Record
Case is used in Variant Record, too. A Variant Record is also called a tagged union.
type
ScaleKelvin = 223 .. 323;
ScaleCelsius = -50 .. 50;
TemperatureScale = ( celsius, kelvin ) ;
Temperature = record
case scale : TemperatureScale of
celcius : (celsius_value : ScaleCelsius);
kelvin : (kelvin_value : ScaleKelvin);
end;