where
expression returns
a Boolean value and statement can be a compound statement. The while statement
executes its constituent
statement repeatedly, testing
expression before each iteration. As long as
expression returns
True, execution continues.
Examples of while statements include
while Data[I] <> X do I := I + 1;
while I > 0 do
begin
if Odd(I) then Z := Z * X;
I := I div 2;
X := Sqr(X);
end;
while not Eof(InputFile) do
begin
Readln(InputFile, Line);
Process(Line);
end;
For Statements
A
for statement, unlike a repeat or while statement, requires you to specify explicitly the number of iterations you
want the loop to go through. The syntax of a for statement is
for
counter := initialValueto
finalValuedo
statement
or
for
counter := initialValuedownto
finalValuedo
statement
where
counter is a local variable (declared in the block containing the for statement)
of ordinal type, without any
qualifiers.
initialValue and
finalValue are expressions that are assignment-compatible with counter.
statement is a simple or structured statement that does not change the value of counter.
The for statement assigns the value of
initialValue to
counter, then executes statement repeatedly, incrementing or
decrementing
counter after each iteration. (The for...to syntax increments
counter, while the for...downto syntax
decrements it.) When
counter returns the same value as
finalValue,
statement is executed once more and the for
statement terminates.
In other words,
statement is executed once for every value in the range from
initialValue to
finalValue. If
initialValue is equal to
finalValue,
statement is executed exactly once. If
initialValue is greater than
finalValue in a for...to statement, or less than
finalValue in a for...downto statement, then
statement is never executed.
After the for statement terminates (provided this was not forced by a
Break
or an
Exit
procedure), the value of
counter is undefined.
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};
40
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);
Dostları ilə paylaş: