Object Pascal 学习笔记,Delphi 11 编程语言的完整介绍 作者: Marco Cantu 笔记:豆豆爸
3.5 while和repeat语句
while-do
和repeat-until
循环的背后思想是重复执行一个代码块,直到满足给定条件为止。这两个循环之间的区别在于条件是在循环的开始还是结束时检查。换句话说,repeat
语句的代码块总是要至少执行一次。
注解:大多数其他编程语言只有一种开放式循环语句,通常称为
while
循环,行为也类似。C语言语法与Pascal语法相同,有while
和do-while
循环两种选择。请注意,它们使用相同的逻辑条件,与repeat-until
循环的相反条件不同。
通过查看一个简单的代码示例,您可以轻松理解repeat
循环始终至少执行一次的原因:
while (I < = 100) and (J < = 100) do
begin
// 使用 I 和 J 计算某事...
I := I + 1;
J := J + 1;
end;
repeat
// 使用 I 和 J 计算某事...
I := I + 1;
J := J + 1;
until (I > 100) or (J > 100);
注解:在
while
和repeat
的条件中,我已将“子条件”括在括号中。在这种情况下是必要的,因为编译器将在执行比较之前执行or
。
如果I或J的初始值大于100,则while
循环将被完全跳过,而repeat
循环内的语句至少执行一次。
这两个循环之间的另一个关键区别是repeat-until
循环具有相反的条件。此循环在条件未满足时执行。当条件满足时,循环终止。这与while-do
循环相反,它在条件为真时执行。因此,我必须在上面的代码中反转条件以获得类似的效果。 注意:“相反条件”正式称为“德摩根定律”(例如,在维基百科上http://en.wikipedia.org/wiki/De_Morgan%27s_laws)。