大家做我来看看这段case语句,错在哪了?(50分)

  • 主题发起人 主题发起人 一成
  • 开始时间 开始时间

一成

Unregistered / Unconfirmed
GUEST, unregistred user!
var
edit111,edit222:integer;
begin
edit111:=strtoint(edit1.text);
edit222:=strtoint(edit2.Text);

if cbb1.text='jia' then edit3.text:=inttostr(jia(edit111,edit222))
else if cbb1.text='jian' then edit3.Text:=inttostr(jian(edit111,edit222))
else
edit3.text:=inttostr(chen(edit111,edit222));
end;

我把if语句改成下面的case语句就出错了

{ case combbbox1.Text of

'jia':edit3.Text:=inttostr(jia(edit111,edit222));
'jian':edit3.Text:=inttostr(jian(edit111,edit222));
'chen':edit3.text:=inttostr(chen(edit111,edit222));
end; }
 
把单引号去掉就可以了
 
case 这里必须是序数类型 of
1: ...
2: ...
end;
 
savenight说得对,来晚了
 
要求是cardinal类型.
 

正如savenight所说,case 和of 之间的变量的值须为有序类型,
为了使用case 变量 of结构,你可以使用下面这样的方法:
假设组合框的第0项为jia,第1项为jian,第2项为chen

case combbbox1.ItemIndex of
0 : edit3.Text:=inttostr(jia(edit111,edit222));
1 : edit3.Text:=inttostr(jian(edit111,edit222));
2 : edit3.text:=inttostr(chen(edit111,edit222));
end;
 
Case 后面的条件必须是有序类型,如果不是有序类型则不行,字符串不是有序类型,所以不能
Case.
 
如果不懂case用法的话,
请用 delphi自带的帮助,就知道啦!
case后面是整数的,字符串不行/
 
接受答案了.
 

Similar threads

I
回复
0
查看
769
import
I
I
回复
0
查看
762
import
I
I
回复
0
查看
775
import
I
后退
顶部