考虑以下德尔福帕斯卡代码:
var
tc: TComponent
begin
{ do something to get tc }
repeat
if(tc is TDBEdit)then begin
if(check_something_about_edit(tc))then break;
do_something_else_edit(tc);
break;
end else if(tc is TBMemo) then begin
if(check_something_about_memo(tc))then break;
do_something_else_memo(tc);
break;
end;
raise exception.create('invalid component type');
until(true); {single iteration look required to use break }
我知道我可以用 TComponent 做一些多态的东西,但这不是我的问题。我想知道是否有办法摆脱单次迭代重复直到语句。没有它,我不能在处理块的任何地方使用 break 语句,我需要它来随时停止处理。