在case语句中,每个由caseList表示的值必须是唯一的;
并且展示了一个示例:
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 := ;
所以第一段引述表明它被处理为一个集合(至少有一个人在这里与我持相同看法,请阅读评论)。
现在我知道了部分内容:
这与集合的属性相矛盾,在此处关于集合中提到:当selectorExpression是小于32位的序数类型表达式时
让我真正感到困扰的是为什么caseList中需要唯一值。如果它等同于基础类型最多只能有256个可能的值,并且它们的序号必须在0和255之间
if
语句,因为编译器已经找到了先前的匹配,所以不会测试第二个值,那么第二个值将不再需要测试吗?