在两级While语句的第二级的语句,如何实现如果出错就跳到第一级的下一个循环中。(50分)

  • 主题发起人 主题发起人 apolloone
  • 开始时间 开始时间
A

apolloone

Unregistered / Unconfirmed
GUEST, unregistred user!

While Not table1.Eof Do //第一级While
Begin
...
While Not table2.Eof Do //第二级While
Begin
...
Try
...
Except
//出错就跳到第一级While的下一个循环中。如何实现呢?
End;
...
End;
...
End;
 
break,跳出一层循环。
 
Break跳出里面的While循环!
 
是的 很简单的 为什么要问呢?
 
While Not table1.Eof Do //第一级While
Begin
...
While Not table2.Eof Do //第二级While
Begin
...
Try
...
Except
//出错就跳到第一级While的下一个循环中。如何实现呢?
End;
... // Break是可以跳出里面的这个循环,但是左边的“...”确也运行啊!可不可以直接进入外面的While语句的下一循环?
End;
...
End;
 
var a:boolean;
a:=false;
While Not table1.Eof Do //第一级While
Begin
...
While Not table2.Eof Do //第二级While
Begin
...
Try
...
Except
//出错就跳到第一级While的下一个循环中。如何实现呢?
a:=true;
break;
End;
if a then break
//如果a为true再跳
... // Break是可以跳出里面的这个循环,但是左边的“...”确也运行啊!可不可以直接进入外面的While语句的下一循环?
End;
...
End;
 
procedure TForm1.Button1Click(Sender: TObject);
var
i, j: integer;
begin
i := 0;
while i < 5 do
begin
try
j := 0;
while j < 5 do
begin

//do
if i = 2 then //跳到第一级While的下一个循环中

abort;

inc(j)
end;



showmessage(inttostr(i));



inc(i)
except
inc(i)
end;
end;

end;
 
abort + except 有时 可以 代替 goto

 
......
Label
BookLabel;
.....


While Not table1.Eof Do //第一级While
Begin
...
While Not table2.Eof Do //第二级While
Begin
...
Try
...
Except
//********************************
Goto BookLabel
//********************************
End;
...
End;
BookLabel:
...
End
 
While Not table1.Eof Do //第一级While
Begin
...
While Not table2.Eof Do //第二级While
Begin
...
Try
...
Except
//出错就跳到第一级While的下一个循环中。如何实现呢?
Break;//这里将跳到下面的地方,但不是外层While的开始部位。
End;
...
End;
//Break后会跳到这里,然后继续向下执行,这个不是你要的。
...
End;
应该这样做:
var
ContinueFirstWhile: Boolean;
begin
While Not table1.Eof Do //第一级While
Begin
ContinueFirseWhild := False;
...
While Not table2.Eof Do //第二级While
Begin
...
Try
...
Except
//出错就跳到第一级While的下一个循环中。如何实现呢?
ContinueFirstWhile := True;
Break;
End;
...
End;
if ContinueFirstWhile then Continue;//这样就跳到前面重头执行了:)
...
End;
 
是头晕呀?!
 
楼主给分啊,我的回答是满足你的要求的:)
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部