delphi case语句变量能用字符串吗

 我来答
liyunf325
推荐于2016-03-28 · TA获得超过2857个赞
知道小有建树答主
回答量:404
采纳率:0%
帮助的人:177万
展开全部

  case 语句只能对顺序类型(ordinal type)管用,也就是:1)整型;2)字符型;3)枚举型。


  如果要用于字符串,可以采取几种变通的方式:


  1. 利用 TStringList。先把备选的字符串挨个 Add 进去,然后调用其 IndexOf 方法;

  2. 如果你的备选项的第 N 个字符(N 应为常数)都互不相同,那么就可以通过取出这个字符,来唯一标识你的字符串;

  3. 先把所有的备选项声明为一个枚举类型的值,那么我们只要把要找的字符串也转换为枚举型,那么就可以用 case 语句了。比如:type TMyStrSel = (Beijing, Tianjing, Shanghai,Chongqing)。不过如果你的备选项有一个不符合 Delphi 的变量名命名法则(如'AK-47'或中文等),则不能将其声明为一个枚举型,就不能使用这个方法。

守意如城
2015-12-15 · TA获得超过107个赞
知道小有建树答主
回答量:134
采纳率:50%
帮助的人:21.5万
展开全部
不能,变量只能是整型(int),或是能够转换成整型的数据类型。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
人间杂货店
推荐于2018-04-05 · 数据只告诉我们事实,知识才能告诉我们真实
人间杂货店
采纳数:1319 获赞数:4312

向TA提问 私信TA
展开全部
Case 语句
If...Then…Else 语句适合选项较少的情况,如果有很多选项的话利用If 语句就比较麻烦,在这种情况下,Case 语句就容易多了。Case 语句的语法如下:

case <表达式> of
<数值>:<语句>;
<数值>:<语句>;
else
<语句>;
end;
下面这个例子中的S 为Char 类型。当用户输入一个字符后按回车键确认后判断变量S,如果是小写或大写字母将显示“字符”,如果是数字,则显示“数字”,其余的字符就显示“其他”,判断语句如下:

var
S:Char;
begin
Readln(S);
case S of
’a’..’z’, ’A’..’Z’:Writeln(’字符’);
’0’..’9’:Writeln(’数字’);
else
Writeln(’其他’);
end;
注意:Case 构造中的任何一个语句都可以是单语句或复合语句。如果需要在某种情况下执行多行代码,必须将它们用Begin…End 括起来。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式