- 38 -
Syntactic elements
for语句把initialValue的值赋给counter,然后重复执行statement,在每次循环后增加或减小counter的值(for...to增加counter,而for...downto减小counter)。当counter的值和finalValue相同时,statement再执行一次然后for语句终止。换句话说,对于initialValue 到finalValue之间的每个值,statement都执行一次。若initialValue等于finalValue,statement实际执行一次;若在for...to 语句中initialValue比finalValue大,或在for...downto语句中initialValue比finalValue小,statement永远不会执行。在for语句终止后,counter值处于未知状态(未定义)。
为控制循环的执行,表达式initialValue和finalValue在循环开始前只执行一次。因此,for...to近乎(但不)等于下面的while结构:
begin
counter := initialValue;
while counter <= finalValue do
begin
statement;
counter := Succ(counter);
end;
end
这个结构和for...to语句的不同之处在于,while语句在每次循环之前要重新计算
一个复杂表达式,这将明显降低执行速度,而且,在statement中改变
for语句的例子包括
for I := 2 to 63 do
if Data[I] > Max then
Max := Data[I];
for I := ListBox1.Items.Count - 1 downto 0 do
ListBox1.Items[I] := UpperCase(ListBox1.Items[I]);
for I := 1 to 10 do
for J := 1 to 10 do
begin
X := 0;
for K := 1 to 10 do
X := X + Mat1[I, K] * Mat2[K, J];
Mat[I, J] := X;
end;
for C := Red to Blue do Check(C);
Blocks and Scope(块和范围)
Blocks and Scope: Overview(概述)
声明和语句被组织成块,它为标签和标志符定义局部名字空间(或范围)
变量名)在程序的不同部分有不同的意义。每个块是程序、函数或过程声明的一部分,每个程序、函数或过程声明有一个块。 finalValue的值,若它是finalValue的值会影响循环的执行。。块能使一个单一的标志符
- 39 - (如
Syntactic elements
Blocks(块)
一个块包含一系列的声明,后面跟一个符合语句。所有的声明必须一起出现在块的开始处,所以,块的形式是
declarations
begin
statements
end
declarations部分能声明变量、常量(包含资源字符串)、类型、过程、函数和标签,它们的顺序是任意的。在一个程序的块中,declarations部分还能包含一个或多个exports子句(参考Dynamic-link libraries and packages)。
比如,像下面的函数声明
function UpperCase(const S: string): string;
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-23665-25.html
说白了