(delphi11最新学习资料) Object Pascal 学习笔记---第3章第5.1节(循环示例)

Object Pascal 学习笔记,Delphi 11 编程语言的完整介绍 作者: Marco Cantu 笔记:豆豆爸

3.5.1 循环示例

​ 为了探讨循环的更多细节,让我们看一个实际的小例子。LoopsTest程序突显了具有固定计数器和开放计数器的循环之间的差异。第一个固定计数器循环,一个for循环,按顺序显示数字:

var
  I: Integer;
begin
  for I := 1 to 20 do
    Show('Number ' + IntToStr(I));
end;

也可以使用while循环获得相同的效果,内部增量为1(注意,在使用当前值后再递增值)。但是,使用while循环,您可以自由设置自定义增量,例如2:

var
  I: Integer;
begin
  I := 1;
  while I < = 20 do
  begin
    Show('Number ' + IntToStr(I));
    Inc(I, 2)
  end;
end;

这段代码显示了从1到19的所有奇数。

​ 这些具有固定增量的循环执行预定的次数,在逻辑上也是等效的。但情况并非总是如此。有些循环在执行上更不确定,例如需要取决于外部条件。 注意:编写while循环时,您必须始终考虑条件永远不会满足的情况。例如,如果编写上面的循环但忘记递增循环计数器,这将导致无限循环(这将永远停滞程序,很可能消耗CPU的100%,直到用户或操作系统终止进程)。

​ 为了展示一个不确定循环次数的例子,我编写了一个基于计数器的while循环,但增加是随机的。为了实现这一点,我使用了范围值为100的Random函数调用。此函数的结果是0到99之间的随机选择的数字。这系列随机数字控制了while循环执行的次数:

var
  I: Integer;
begin
  Randomize;
  I := 1;
  while I < 500 do
  begin
    Show('Random Number: ' + IntToStr(I));
    I := I + Random(100);
  end;
end;

如果你记得添加对Randomize过程的调用,那么每次运行程序时该过程使随机数生成器从不同点开始,每次运行程序时数字都会不同。以下是两次单独执行的输出,并排显示:

Random Number: 1							Random Number: 1
Random Number: 40							Random Number: 47
Random Number: 60							Random Number: 104
Random Number: 89							Random Number: 201
Random Number: 146						Random Number: 223
Random Number: 198						Random Number: 258
Random Number: 223						Random Number: 322
Random Number: 251						Random Number: 349
Random Number: 263						Random Number: 444
Random Number: 303						Random Number: 466
Random Number: 349
Random Number: 366
Random Number: 443
Random Number: 489

请注意,生成的数字不仅在每次运行时不同,而且条目数量也不同。这是因为while循环执行的次数是随机的。如果连续执行该程序多次,您将看到输出的行数不同。

  • 12
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值