blob: 9fe87e970e9b1767f2a20c74ad3cbe9458398574 (
plain) (
blame)
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
|
const expect = @import("std").testing.expect;
test "while basic" {
var i: usize = 0;
while (i < 10)
i += 1;
expect(i == 10);
}
test "while break" {
var i: usize = 0;
while (true) {
if (i == 10)
break;
i += 1;
}
expect(i == 10);
}
test "while continue" {
var i: usize = 0;
while (true) {
i += 1;
if (i < 10)
continue;
break;
}
expect(i == 10);
}
test "while loop continue expression" {
var i: usize = 0;
while (i < 10) : (i += 1) {}
expect(i == 10);
}
test "while loop continue expression, more complicated" {
var i: usize = 1;
var j: usize = 1;
while (i * j < 2000) : ({ i *= 2; j *= 3; })
expect(i * j < 2000);
}
test "while else" {
expect(rangeHasNumber(0, 10, 5));
expect(!rangeHasNumber(0, 10, 15));
}
fn rangeHasNumber(begin: usize, end: usize, number: usize) bool {
var i = begin;
return while (i < end) : (i += 1) {
if (i == number) {
break true;
}
} else false;
}
test "nested break" {
outer: while (true) {
while (true) {
break :outer;
}
}
}
test "nested continue" {
var i: usize = 0;
outer: while (i < 10) : (i += 1) {
while (true) {
continue :outer;
}
}
}
|