Quick start manual

Syntactic elements
4-29
Blocks and scope
For purposes of controlling execution of the loop, the expressions initialValue and
finalValue are evaluated only once, before the loop begins. Hence the for...to
statement is almost, but not quite, equivalent to this while construction:
begin
counter := initialValue;
while counter <= finalValue do
begin
statement;
counter := Succ(counter);
end;
end
The difference between this construction and the for...to statement is that the while
loop reevaluates finalValue before each iteration. This can result in noticeably slower
performance if finalValue is a complex expression, and it also means that changes to
the value of finalValue within statement can affect execution of the loop.
Examples of for statements:
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
Declarations and statements are organized into blocks, which define local namespaces
(or scopes) for labels and identifiers. Blocks allow a single identifier, such as a variable
name, to have different meanings in different parts of a program. Each block is part
of the declaration of a program, function, or procedure; each program, function, or
procedure declaration has one block.