String类型的变量如何用Case语句来处理(100分)

  • 主题发起人 主题发起人 pcmax
  • 开始时间 开始时间
P

pcmax

Unregistered / Unconfirmed
GUEST, unregistred user!
本人在做程序时遇到一种情况,有一个String类型变量SVar的值分别可以为1:‘AAA’,2:‘MAX’3,‘PC’4,‘Lang’
这四种。现在我需要用Case语句来编写,使其可以根据每一种值分别进行不同的处理。

我是这样进行处理的:
Case SVar Of
'AAA' : //处理过程
'MAX' : //处理过程
'PC' : //处理过程
'Lang' : //处理过程
End;

但是编译报错,我看了一下HELP,上面说其Case变量不能使用String类型,请各位高手赐招~!
(请不要使用数组、枚举的变量类型来处理这个问题)
 
好夸张,,想要CASE支持STRING的话,你重写PASCAL吧。。
 
改成:
if SVar='AAA' then
begin

end
else if SVar='MAX' then
begin

end
....
 
同意zhihuli
 
String類型的不能用Case。
 
你可以使用枚举啊
type
TVar = (AAA,MAX,PC,Lang)
var
SVar: TVar;
...................
procedure Haha
begin
case SVar of
AAA:....;
PC:....;
end;
end;
 
同意 Bill_Liyi
 
枚举就有序
String是有序的吗?
 
Bill_Liyi:
老兄,看清题目
TVar = (AAA,MAX,PC,Lang)里的AAA是string型吗?
 
我的做法是:
可以先使用一个对照翻译,将你所使用的字符串翻译为对应的数字,再使用case。
 
>> 可以先使用一个对照翻译,将你所使用的字符串翻译为对应的数字,再使用case。
将字符串转换为有序类型在通过case调用,关键这个算法难写,有序类型最大范围是long,
字符串的相互组织出来的可能性几乎是无穷的,一个long如何转换所有的字符串组合呢?
 
哈哈,题目中的括号没看见,这个问题无解
 
谢谢给位的指点!
 
后退
顶部