은 다음과 델파이 파스칼 코드를 고려 : 내가 TComponent의 함께 할 수있는 몇 가지 다형성 물건이 거기에 아마 알고DELPHI : 루프 또는 케이스 외부에서 "break"를 사용하는 방법은 무엇입니까?
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 }
을하지만 내 질문이 아니다. 나는 하나의 반복 repeat-until 문을 없애는 방법이 있는지 궁금 하네. 그것 없이는 처리 블록 어디에서나 break 문을 사용할 수 없으며 언제든지 처리를 중단해야합니다.
실제로, 여러분이 할 수있는 "polymorphic stuff"가있을 것입니다. 두 컴포넌트 유형 모두 'TCustomEdit'에서 파생됩니다. 'tc'의 선언을 그 것으로 변경하십시오. –
+1. 게시 한 코드가 잔인한 것이지만 개선 방법을 묻는 것은 정확합니다. 한 번 이상 실행하지 않는 루프가있을 때마다 잘못된 결과가 발생합니다. –