delphi编程中循环的理解与使用

循环是所有编程语言中的常见元素。Delphi有三个重复执行代码块的控制结构:例如,repeat。。。直到。。。做...

循环是所有编程语言中的常见元素。Delphi有三个重复执行代码块的控制结构:例如,repeat。。。直到。。。做

Man using a laptop

for循环

假设我们需要将一个操作重复固定次数。

// show 1,2,3,4,5 message boxes var j: integer; begin for j := 1 to 5 do begin ShowMessage('Box: '+IntToStr(j)) ; end; end;

控制变量(j)的值实际上只是一个计数器,它决定for语句的运行次数。用于设置计数器的关键字。在前面的示例中,计数器的起始值设置为1。结束值设置为5。当for语句开始运行时,计数器变量设置为起始值。Delphi than检查计数器的值是否小于结束值。如果该值较大,则不执行任何操作(程序执行跳转到for循环代码块后面的代码行)。如果起始值小于结束值,则执行循环体(此处:显示消息框)。最后,Delphi将1添加到计数器并再次启动该过程。

有时倒计时是必要的。downto关键字指定每次执行循环时计数器的值应递减一(不可能指定一个以外的增量/减量)。反向计数的for循环示例。

var j: integer; begin for j := 5 downto 1 do begin ShowMessage('T minus ' + IntToStr(j) + 'seconds') ; end; ShowMessage('For sequence executed!') ; end;

注意:重要的是永远不要在循环中间改变控制变量的值。这样做会导致错误。

嵌套for循环

当您希望在表或网格中填充/显示数据时,在另一个for循环(嵌套循环)中编写for循环非常有用。

var k,j: integer; begin //this double loop is executed 4x4=16 times for k:= 1 to 4 do for j:= 4 downto 1 do ShowMessage('Box: '+ IntToStr(k)+ ',' + IntToStr(j)) ; end;

下一个循环的嵌套规则很简单:在遇到外循环的下一个语句(k计数器)之前,必须先完成内循环(j计数器)。我们可以有三重或四重嵌套循环,甚至更多。

注意:如您所见,一般来说,开始和结束关键字不是严格要求的。如果未使用begin和end,则紧跟for语句之后的语句将被视为循环体。

循环中的for

如果您有Delphi2005或任何更新的版本,您可以在容器上的集合样式迭代中使用“new”for元素。下面的示例演示对字符串表达式的迭代:对于字符串中的每个字符,检查字符是否为“a”或“e”或“i”。

const s = 'About Delphi Programming'; var c : char; begin for c in s do begin if c in ['a','e','i'] then begin // do something end; end; end;

while和repeat循环

有时我们不知道一个循环应该循环多少次。如果我们想重复一次手术,直到达到一个特定的目标,该怎么办?

while-do循环和repeat-until循环之间最重要的区别在于repeat语句的代码总是至少执行一次。

在Delphi中编写重复(和while)类型的循环时的一般模式如下:

repeat begin statements; end; until condition = true while condition = true do begin statements; end;

下面是使用repeat Tour显示5个连续消息框的代码:

var j: integer; begin j:=0; repeat begin j := j + 1; ShowMessage('Box:'+IntToStr(j)) ; end; until j > 5; end;

如您所见,repeat语句在循环结束时计算一个条件(因此,repeat循环肯定至少执行一次)。

另一方面,while语句在循环开始时计算条件。由于测试是在顶部完成的,我们通常需要在处理循环之前确保条件是合理的,如果这不是真的,编译器可能会决定从代码中删除循环。

var j: integer; begin j:=0; while j < 5 do begin j:=j+1; ShowMessage('Box:'+IntToStr(j)) ; end; end;

中断并继续

中断和继续过程可用于控制重复语句流:中断过程使控制流退出for、while或repeat语句,并在loop语句后的下一个语句继续。Continue允许控制流继续执行重复操作的下一个迭代。

  • 发表于 2021-10-07 21:02
  • 阅读 ( 150 )
  • 分类:数学

你可能感兴趣的文章

用delphi创建、解析和操作xml文档

...行诸如检索、更新和插入XML数据之类的操作。 作为一名Delphi程序员,您应该知道如何使用XML文档。 xml与delphi 有关将Delphi与XML配对的更多信息,请阅读: 了解如何将TTreeView组件项存储到XML(保留树节点的文本和其他属性)...

  • 发布于 2021-09-06 15:05
  • 阅读 ( 167 )

了解delphi编程的基础知识

希望掌握Delphi编程语言的初学者应该已经熟悉Microsoft Windows的基础知识。学习Delphi是最容易的,如果你从一个有指导的、基于教程的参考框架来学习它。 基本概念 从一堂历史课开始,介绍(Turbo)Pascal到Delphi 2005的演变,例...

  • 发布于 2021-09-06 15:13
  • 阅读 ( 186 )

理解delphi项目和单元源文件

简而言之,Delphi项目只是组成由Delphi创建的应用程序的文件集合。DPR是用于Delphi项目文件格式的文件扩展名,用于存储与项目相关的所有文件。这包括其他Delphi文件类型,如表单文件(DFM)和单元源文件(.PASs)。 由于Delphi...

  • 发布于 2021-09-06 15:15
  • 阅读 ( 177 )

德尔福单元剖析(德尔福初学者版)

如果您打算成为一名优秀的Delphi程序员,那么“接口”、“实现”和“使用”等词需要在您的编程知识中占有特殊的位置。 德尔福项目 当我们创建一个Delphi应用程序时,我们可以从一个空白项目、一个现有项目或Delphi的一...

  • 发布于 2021-09-10 20:53
  • 阅读 ( 183 )

用delphi和ado编辑excel表格

...,以及如何处理这些错误。 以下内容包括: Excel和Delphi之间的数据传输方法。如何使用ADO(ActiveX数据对象)和Delphi连接Excel。 使用Delphi和ADO创建Excel电子表格编辑器 从Excel中检索数据。如何在Excel工作簿中引用表(或范围)...

  • 发布于 2021-09-11 00:21
  • 阅读 ( 244 )

优化delphi程序的内存使用

...活动,最终降低计算机的速度。 02 2006年 何时在delphi应用程序中创建表单 假设您要设计一个包含主窗体和两个附加(模态)窗体的程序。通常,根据您的Delphi版本,Delphi将把表单插入到项目单元(DPR文件)中,并包...

  • 发布于 2021-09-15 03:43
  • 阅读 ( 201 )

使用delphi创建windows服务应用程序

...以暂停和重新启动,并且不显示任何用户界面。 使用delphi的服务应用程序 使用Delphi创建服务应用程序: 创建服务、安装和卸载服务应用程序、使服务执行某些操作,并使用TService.LogMessage方法调试服务应用程序。 使用Delphi...

  • 发布于 2021-09-15 03:44
  • 阅读 ( 141 )

理解delphi中的内存分配

从代码中调用函数“DoStackOverflow”一次,您将得到Delphi引发的EStackOverflow错误,并显示消息“stack overflow”。 ​function DoStackOverflow : integer; begin result := 1 + DoStackOverflow; end; 这个“堆栈”是什么?为什么使用上面的代码会...

  • 发布于 2021-09-15 03:47
  • 阅读 ( 197 )

使用delphi创建internet快捷方式(.url)文件

...,Internet快捷方式指向URL(web文档)。下面介绍如何使用Delphi创建.URL文件或Internet快捷方式。 Internet快捷方式对象用于创建指向Internet站点或web文档的快捷方式。Internet快捷方式与指向文档或应用程序的常规快捷方式(包含二进...

  • 发布于 2021-09-15 04:01
  • 阅读 ( 199 )

set checkbox.checked不带onclick事件

TCheckBox Delphi控件显示一个复选框,该复选框可以打开(选中)或关闭(未选中)。Checked属性指定是否选中该复选框。 当用户单击复选框以更改其选中状态时,将触发复选框的OnClick事件。 更改复选框的checked属性 由于没有...

  • 发布于 2021-09-15 04:04
  • 阅读 ( 162 )
依姆机
依姆机

0 篇文章

相关推荐