次のDelphiPascalコードを検討してください。
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でできる多形的なものがあることは知っていますが、それは私の質問ではありません。単一の反復repeat-untilステートメントを取り除く方法があるかどうか疑問に思っています。これがないと、処理ブロックのどこでもbreakステートメントを使用できず、いつでも処理を停止する必要があります。