2022-04-10 15:55:56 +02:00
|
|
|
// This program is a simple test of while loops, counting down from 19 to 0
|
|
|
|
// and skipping 10 (if continue is implemented)
|
|
|
|
|
|
|
|
func while_test ()
|
|
|
|
begin
|
2022-04-22 18:40:36 +02:00
|
|
|
var a, b
|
2022-04-10 15:55:56 +02:00
|
|
|
a := 20
|
2022-04-23 23:07:38 +02:00
|
|
|
|
2022-04-22 18:40:36 +02:00
|
|
|
b := test_while()
|
2022-04-23 23:07:38 +02:00
|
|
|
|
|
|
|
print "Loops done in test_while:", b
|
2022-04-22 18:40:36 +02:00
|
|
|
|
2022-04-10 15:55:56 +02:00
|
|
|
print a
|
2022-04-22 18:40:36 +02:00
|
|
|
|
|
|
|
|
2022-04-10 15:55:56 +02:00
|
|
|
if a > 0 then print "foobar"
|
|
|
|
while a > 0 do
|
|
|
|
begin
|
|
|
|
if a = 10 then
|
|
|
|
begin
|
|
|
|
a -= 1
|
|
|
|
print "Skip..."
|
|
|
|
continue
|
|
|
|
end
|
|
|
|
else
|
|
|
|
a -= 1
|
|
|
|
print a
|
|
|
|
end
|
2022-04-22 18:40:36 +02:00
|
|
|
return 0
|
|
|
|
end
|
|
|
|
|
|
|
|
func test_while()
|
|
|
|
begin
|
2022-04-23 23:07:38 +02:00
|
|
|
var n, m, loops_done
|
2022-04-22 18:40:36 +02:00
|
|
|
|
2022-04-23 23:07:38 +02:00
|
|
|
m := 10
|
|
|
|
n := 5
|
2022-04-22 18:40:36 +02:00
|
|
|
|
2022-04-23 23:07:38 +02:00
|
|
|
loops_done := 0
|
2022-04-22 18:40:36 +02:00
|
|
|
|
2022-04-23 23:07:38 +02:00
|
|
|
|
|
|
|
while m > 0 do
|
|
|
|
begin
|
|
|
|
|
|
|
|
if m = 7 then
|
2022-04-22 18:40:36 +02:00
|
|
|
begin
|
|
|
|
m -= 1
|
2022-04-23 23:07:38 +02:00
|
|
|
print "Skipping loop 7"
|
|
|
|
continue
|
|
|
|
end
|
|
|
|
|
|
|
|
n := 5
|
|
|
|
while n > 0 do
|
|
|
|
begin
|
|
|
|
|
2022-04-22 18:40:36 +02:00
|
|
|
|
2022-04-23 23:07:38 +02:00
|
|
|
if n = 3 then
|
|
|
|
begin
|
|
|
|
n -= 1
|
|
|
|
print "-------Skip 3 in inner loop"
|
2022-04-22 18:40:36 +02:00
|
|
|
continue
|
2022-04-23 23:07:38 +02:00
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
loops_done += 1
|
|
|
|
print "loop:", loops_done, "Values:", m, n
|
|
|
|
n -= 1
|
|
|
|
end
|
2022-04-22 18:40:36 +02:00
|
|
|
|
2022-04-23 23:07:38 +02:00
|
|
|
if m = 5 then
|
|
|
|
begin
|
|
|
|
m -= 1
|
|
|
|
print "<<<<<<Skip after exit of inner while"
|
|
|
|
continue
|
2022-04-22 18:40:36 +02:00
|
|
|
end
|
|
|
|
|
2022-04-23 23:07:38 +02:00
|
|
|
print "######## Loop", m, "done"
|
|
|
|
m -= 1
|
2022-04-22 18:40:36 +02:00
|
|
|
|
|
|
|
end
|
|
|
|
|
2022-04-23 23:07:38 +02:00
|
|
|
return loops_done
|
2022-04-10 15:55:56 +02:00
|
|
|
end
|