ObjectPascal的循环语句有三种:repeat、while和for语句。
repeat语句
repeat语句会重复执行一行或一段语句直到某一状态为真。语句以repeat开始,以until结束,其后跟随被判断的
布尔表达式。参
阅以下的例程:
i:=0;
repeat
i:=i+1;
Writeln(i);
until=10;
当此语句被执行时,
窗体的下方会出现1到10的数字。布尔表达式i=10(注意,与其他语言不同的是,“=”是关系运算符,而
不能进行赋值操作)直到repeat..until程序段的结尾才会被计算,这意味着repeat语句至少会被执行一次。
不同
while语句和repeat语句的不同之处是,它的布尔表达式在循环的开头进行判断。while保留字后面必须跟一个布尔表达式。如果
该
表达式的结果为真,循环被执行,否则会退出循环,执行while语句后面的程序。
下面的例程达到和上面的repeat例程达到同样的效果:
i:=0;
whilei0then
test2(A);{经前置说明,调用未执行的过程Test2}
writeln(A);
end;
procedureTest2(varA:Integer);{经前置说明的Test2的执行部分}
begin
A:=Adiv2;
ifA>0rhen
test1(A);{在Test2中调用已执行的过程Test1}
end;
procedureTForm1.Button1Click(Sender:TObject);
begin
Alpha:=15;{给Alpha赋初值}
Test1(Alpha);{第一次调用Test1,递归开始}
end;
按钮的OnClick事件处理过程给Alpha赋初值,并实现先减1再除2的循环
递归调用,直到Alpha小于0为止。