主题:在线求救 关于if 句型
杀一刀
[专家分:0] 发布于 2006-04-16 20:57:00
有代码:
if memo1.Modified then
begin
returnvalue:=messagedlg('文件没保存,要保存吗?',mtwarning,[mbyes,mbno,mbno,mbcancel],0);
if returnvalue=mryes then//需要保存
begin
toolbutton3.click;
memo1.Modified:=false;
end
else//不需要保存
if returnvalue=mrno then
memo1.Modified:=false;
end;
小弟我怎么也看不懂那个else怎么和第一个if配对,我认为应和第2个if配对~
回复列表 (共5个回复)
沙发
aizaixiiii [专家分:2130] 发布于 2006-04-17 08:50:00
你是对的!
板凳
杀一刀 [专家分:0] 发布于 2006-04-17 08:59:00
那这个句型的else是通常是和哪个if配对啊
3 楼
aizaixiiii [专家分:2130] 发布于 2006-04-17 09:08:00
if 条件 then
begin
if 条件 then
begin
end
else
begin
if 条件 then
begin
end;
end;
end;
它的原型;
4 楼
progfan [专家分:2270] 发布于 2006-04-17 11:22:00
if memo1.Modified then
begin
returnvalue:=messagedlg('文件没保存,要保存吗?',mtwarning,mbyes,mbno,mbno,mbcancel],0);
if returnvalue=mryes then//需要保存
begin //复合语句到‘end‘
toolbutton3.click;
memo1.Modified:=false;
end //和下面的else配对,所以后面没有分号
else//不需要保存
if returnvalue=mrno then memo1.Modified:=false; //单语句以分号结束,后面没有'end;',如果此处是复合语句,则前面应用'Begin',后面应用'end;'
end;
复合语句以'begin'开头,而以'end;'结束,如果这个复合语句是在分支语句的if部分且后面有else语句,则end后面没有分号,因为分号将意味首整合分支语句的结束,else部分就没用了,所以不能那么做。如果else部分是个复合语句,也同样将以begin而以'end;'结束,这个分号意味着整个分支语句结束。如果Else分支语句是一个单语句,则该语句以分号结束就行了,这个分号即是当前语句的结束符,也是整个if...else语句的结束符。
例1:
if 条件 then
单语句 //无分号,表示后面有else
else
单语句;//此分号结束当前语句,也结束整个分支语句
例2:
if 条件 then
begin
复合语句;
end //无分号,表示后面有else
else
begin
复合语句;
end; //此分号结束整个分支语句
例3:
if 条件 then
begin
复合语句;
end
else
单语句; ////此分号结束当前语句,也结束整个分支语句
5 楼
杀一刀 [专家分:0] 发布于 2006-04-18 22:04:00
呵呵,高手就是高手,回贴都这么详细,真让小弟我感动啊~!
我来回复