TDT4205/exercises/06/vslc/vsl_programs/ps6-codegen2/while_test.vsl

83 lines
1.3 KiB
Plaintext
Raw Normal View History

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-22 18:40:36 +02:00
b := test_while()
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
var n, m, loops_done
2022-04-22 18:40:36 +02:00
m := 10
n := 5
2022-04-22 18:40:36 +02:00
loops_done := 0
2022-04-22 18:40:36 +02:00
while m > 0 do
begin
if m = 7 then
2022-04-22 18:40:36 +02:00
begin
m -= 1
print "Skipping loop 7"
continue
end
n := 5
while n > 0 do
begin
2022-04-22 18:40:36 +02:00
if n = 3 then
begin
n -= 1
print "-------Skip 3 in inner loop"
2022-04-22 18:40:36 +02:00
continue
end
loops_done += 1
print "loop:", loops_done, "Values:", m, n
n -= 1
end
2022-04-22 18:40:36 +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
print "######## Loop", m, "done"
m -= 1
2022-04-22 18:40:36 +02:00
end
return loops_done
2022-04-10 15:55:56 +02:00
end