summaryrefslogtreecommitdiff
path: root/fpcsrc/tests/tbs/tb0115.pp
blob: a434a56641958c54fe92b15632cea47629359d6e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
{ Old file: tbs0134.pp }
{ 'continue' keyword is bugsgy.                          OK 0.99.6 (FK) }

{
In this simple examply, the even loop is wrong.  When continue; is called,
it should go back to the top and check the loop conditions and exit when i =
4, but continue skips checking the loop conditions and does i=5 too, then it
is odd, doesn't run the continue, and the loop terminates properly.
}


procedure demoloop( max:integer );
var i : integer;
begin
i := 1;
while (i <= max) do
    begin
    if (i mod 2 = 0) then
        begin
        writeln('Even ',i,' of ',max);
        inc(i);
        continue;
        end;
    writeln('Odd ',i,' of ',max);
    inc(i);
    end;
end;

begin
writeln('Odd loop (continue is *not* last call):');
demoloop(3);
writeln('Even loop (continue is last call):');
demoloop(4);
end.