delphi case语句变量能用字符串吗
3个回答
展开全部
case 语句只能对顺序类型(ordinal type)管用,也就是:1)整型;2)字符型;3)枚举型。
如果要用于字符串,可以采取几种变通的方式:
利用 TStringList。先把备选的字符串挨个 Add 进去,然后调用其 IndexOf 方法;
如果你的备选项的第 N 个字符(N 应为常数)都互不相同,那么就可以通过取出这个字符,来唯一标识你的字符串;
先把所有的备选项声明为一个枚举类型的值,那么我们只要把要找的字符串也转换为枚举型,那么就可以用 case 语句了。比如:type TMyStrSel = (Beijing, Tianjing, Shanghai,Chongqing)。不过如果你的备选项有一个不符合 Delphi 的变量名命名法则(如'AK-47'或中文等),则不能将其声明为一个枚举型,就不能使用这个方法。
展开全部
不能,变量只能是整型(int),或是能够转换成整型的数据类型。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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 括起来。
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 括起来。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询