begin
if ... { expression2 } then
... { statement1 }
else
... { statement2 }
end;
规则就是,对于嵌套的条件语句,解析从最内层开始,每个
子,要使编译器按第二种方式解析,你应该把代码明确写为
if ... { expression1 } then
begin
if ... { expression2 } then
... { statement1 }
end
else
... { statement2 } ;
Case Statements(Case语句)
相对于嵌套if语句的复杂性,case语句具有更好的可读性。
case selectorExpression of
caseList1: statement1;
...
caseListn: statementn;
end
这里,selectorExpression是任何一个有序类型的表达式(字符串无效)
? 数字、声明的常量或者编译器不需要执行程序就能计算的表达式。它必须是和
容的有序类型。所以,7、True、
函数不行(少数内置的函数,比如
? 具有First..Last形式的子界类型,这里,
? 具有item1, ..., itemn形式的列表,这里,每个
caseList所表示的每个值必须是唯一的,子界类型和列表不能重叠。
case selectorExpression of
caseList1: statement1;
...
caseListn: statementn;
else
statements;
end
这里,statements是由分号隔开的语句序列。当
- 36 - else对应于它左边最近的if。对于我们的例 case语句的形式是 ,每个caseList是下列之一 selectorExpression兼4+5*3、'A'、以及Integer('A')都能用于caseLists,但变量和大多数Hi和Lo能出现在caseList,参考Constant expressions)。 First和Last都满足上面的条件并且First小于或等于Last。item满足上面的两个条件之一。 case语句在最后能有一个else子句:case语句执行时,statement1到statementn中最多有一个
Syntactic elements
执行,哪一个caseList和selectorExpression的值相等,哪个语句被执行。若caseList中没有一个和selectorExpression的值相等,那么else子句(若有的话)中的statements被执行。
case语句
case I of
1..5: Caption := 'Low';
6..9: Caption := 'High';
0, 10..99: Caption := 'Out of range';
else
Caption := '';
end;
等同于下面的嵌套条件语句
if I in [1..5] then
Caption := 'Low'
else if I in [6..10] then
Caption := 'High'
else if (I = 0) or (I in [10..99]) then
Caption := 'Out of range'
else
Caption := '';
其它case语句的例子有:
case MyColor of
Red: X := 1;
Green: X := 2;
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-23665-23.html
我相信没错
演员杨洋加油