关于case语句的疑问?(10分)

  • 主题发起人 主题发起人 icysword
  • 开始时间 开始时间
I

icysword

Unregistered / Unconfirmed
GUEST, unregistred user!
var i:string;

case i of
'abc':
showmessage('abc');
'abd':
showmessage('abd');
end;
为什么有错? 错误提示是 Ordinal type required .
Incompatibel types: 'Integer' and 'String' .
请问该如何修改代码? 先谢了.
 
case 语句的选择因子必须是有序类型,
而不能用非有序的类型如字符串作为选择因子。
 
同意!可以为枚举类型等!反正有序的
 
case 语句中的 i (举你的例子)一定要是integer有序,有资料说在编写时还有注意
顺序,如:
1:
2:
3:
不要
2:
3:
1:

否则会影响速度,但我没试过,你不妨试一下,再用dede 反汇编,代码有何不同。
不过习惯还是1、2、3
 
同意楼上,可以这样:
case String[1] of
'a'://your code
'b'://your code
end;
那是一个判断字符串首字符的case语句
 
你这个只能用
if i='abc' then
....
else if i='abd' then
...
else if ...
...
end;
 
接受答案了.
 
后退
顶部