关于CASE语句的问题。(10分)

  • 主题发起人 主题发起人 RX_93
  • 开始时间 开始时间
R

RX_93

Unregistered / Unconfirmed
GUEST, unregistred user!
大家好,小生我正在自学DELPHI,但是PASCAL中的CASE语句我看不懂。大家能不能举一些例子
或者作一些详尽的解释?尽量用中文解释。我英文不好!
 
case 一个整型变量 of
值1:begin
end;
值1:begin
end;
.....
值n:begin
end;
end;
 
你好,这个我是看懂了。但是我仍然不能理解意思。不好意思,请替我解释一下好吗?谢谢了……我刚刚入门。
 
case 一个整型变量 of //if 变量=值1 then
值1:begin //begin
end
//end

//if 变量=值2 then
值2:begin //begin
end
//end

........ ..........
//if 变量=值n then
值n:begin //begin
end
//end

end;

懂了吗:)
 
Kiss 就是:在10个姑娘中吻一个,如果哪个都不愿意,
就只能吻自己的老婆了!
 
难道说书上没有吗?
fanren945说的很详细呀.
千万要记住:case后面是一个整型变量,其他的可不行哟.
 
case 一个整型变量 of
值1:begin
end;
.....
值n:begin
end;
end;
值基本上都为整数型或布尔
 
我認為case后應為有序變量,不限定為整數變量,
如布爾型,枚舉型,集合,字符型(不是字符串)等
凡是有序的都可以。
 
程序经典结构有三种:顺序、选择(分支)、循环。

你说的case结构就是属于选择(分支)结构的,
即case语句完全可以转换成 if else 的选择结构~

在分支比较多的情况下,用case的效率较好!

其他的楼上都说过了~ 无它!
 
procedure TForm1.Button1Click(Sender: TObject);
var n:integer;
begin
n:=1;//执行第一句;
case n of
1:form1.windowstate:=wsminimized;//最小化
2:form1.windowstate:=wsnormal;//最大化
end;
end;
 
case X of // X为一个有序变量或结果为有序值的表达式比如i+j等
值1:语句1 // 如果X等于值1,执行语句1(可以为复合语句,下同)
值2:语句2 // 如果X等于值2,执行语句2
.....
值n:语句n // 如果X等于值n,执行语句n
else
语句n+1 //如果上面都没有符合的,执行语句n+1
end;

完整的格式:
case selectorExpression of

caseList1: statement1;
...
caseListn: statementn;
else
statements;
end

例子:
case I of
1..5: Caption := 'Low';
6..9: Caption := 'High';
0, 10..99: Caption := 'Out of range';
else
Caption := '';
end;
这个例子相当于
if I in [1..5] then
Caption := 'Low'
else if I in [6..10] then
Caption := 'High'
else if (I = 0) or (I in [10..99]) then
Caption := 'Out of range'
else
Caption := '';

 
case 回答你问题的人 of //在回答你问题的人之中
除我之外的人:begin //如果不是我就不给分
不给分
end;
我: begin //如果是我就给分,
给分
end;
end;

 
我上面说错了,应该是有序类型都可以的.
 
谢谢各位的解答!我弄懂了!DFW上的热心人真的不少。谢谢大家。
 
后退
顶部