gux/tests/flow_control.gux

110 lines
1.0 KiB
Plaintext

var a := 0;
if true { a = 1; }
assert a == 1;
if false { a = 2; }
assert a == 1;
if true { a = 3; } else { a = 4; }
assert a == 3;
if false { a = 3; } else { a = 4; }
assert a == 4;
if true {
a = 5;
} else if false {
a = 6;
} else if false {
a = 7;
} else {
a = 8;
}
assert a == 5;
if false {
a = 5;
} else if true {
a = 6;
} else if false {
a = 7;
} else {
a = 8;
}
assert a == 6;
if false {
a = 5;
} else if false {
a = 6;
} else if true {
a = 7;
} else {
a = 8;
}
assert a == 7;
if false {
a = 5;
} else if false {
a = 6;
} else if false {
a = 7;
} else {
a = 8;
}
assert a == 8;
var b := 0;
while b < 100 {
b = b + 1;
}
assert b == 100;
var c := 0;
var d := 0;
var e := 0;
while c < 6 {
d = 0;
while d < 7 {
e = e + 1;
d = d + 1;
}
c = c + 1;
}
assert e == 42;
var f := 0;
while f < 100 {
if f == 37 {
break;
}
f = f + 1;
}
assert f == 37;
var g := 0;
var h := 0;
while g < 100 {
g = g + 1;
if g % 2 == 0 {
continue;
}
h = h + 1;
}
assert h == 50;