如何在程序中跳出循环或分支结构之外使用break语句?

2026-04-10 18:352阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计314个文字,预计阅读时间需要2分钟。

如何在程序中跳出循环或分支结构之外使用break语句?

尝试以下Delphi/Pascal代码:

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 // 检查Memo的内容 if (check_content(tc)) then break; // 对Memo做其他操作 do_something_else_memo(tc); break; end // 可以添加其他组件类型的处理 else tc :=tc.Next; until tc=nil;end;

考虑以下delphi pascal代码:

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语句,我需要随时停止处理.

将其打包到一个函数中并使用exit跳回.如果有更多代码要遵循repeat语句,请使用本地函数/过程,例如:

procedure ... procedure testsomething(tc: TComponent); begin if(tc is TDBEdit)then begin if(check_something_about_edit(tc))then exit; do_something_else_edit(tc); exit; end else if(tc is TBMemo) then begin if(check_something_about_memo(tc))then exit; do_something_else_memo(tc); exit; end; raise exception.create('invalid component type'); end; var tc: TComponent; begin { do something to get tc } try TestSomething(tc); { do something more } except ... end; end;

如何在程序中跳出循环或分支结构之外使用break语句?

本文共计314个文字,预计阅读时间需要2分钟。

如何在程序中跳出循环或分支结构之外使用break语句?

尝试以下Delphi/Pascal代码:

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 // 检查Memo的内容 if (check_content(tc)) then break; // 对Memo做其他操作 do_something_else_memo(tc); break; end // 可以添加其他组件类型的处理 else tc :=tc.Next; until tc=nil;end;

考虑以下delphi pascal代码:

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语句,我需要随时停止处理.

将其打包到一个函数中并使用exit跳回.如果有更多代码要遵循repeat语句,请使用本地函数/过程,例如:

procedure ... procedure testsomething(tc: TComponent); begin if(tc is TDBEdit)then begin if(check_something_about_edit(tc))then exit; do_something_else_edit(tc); exit; end else if(tc is TBMemo) then begin if(check_something_about_memo(tc))then exit; do_something_else_memo(tc); exit; end; raise exception.create('invalid component type'); end; var tc: TComponent; begin { do something to get tc } try TestSomething(tc); { do something more } except ... end; end;

如何在程序中跳出循环或分支结构之外使用break语句?