/
while.t
77 lines (63 loc) 路 1.22 KB
/
while.t
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
74
75
76
77
use v6;
# L<S04/The C<while> and C<until> statements>
use Test;
plan 9;
{
my $i = 0;
while $i < 5 { $i++; };
is($i, 5, 'while $i < 5 {} works');
}
{
my $i = 0;
while 5 > $i { $i++; };
is($i, 5, 'while 5 > $i {} works');
}
# with parens
{
my $i = 0;
while ($i < 5) { $i++; };
is($i, 5, 'while ($i < 5) {} works');
}
{
my $i = 0;
while (5 > $i) { $i++; };
is($i, 5, 'while (5 > $i) {} works');
}
# single value
{
my $j = 0;
while 0 { $j++; };
is($j, 0, 'while 0 {...} works');
}
{
my $k = 0;
while $k { $k++; };
is($k, 0, 'while $var {...} works');
}
#?mildew skip 1
# L<S04/The C<for> statement/It is also possible to write>
# while ... -> $x {...}
{
my @array = 1..5;
my $str = "";
while @array.pop -> $x {
$str ~= $x;
}
is $str, '54321', 'while ... -> $x {...} worked (1)';
}
#?mildew skip 1
{
my @array = 0..5;
my $str = "";
while pop @array -> $x {
$str ~= $x;
}
is $str, '54321', 'while ... -> $x {...} worked (2)';
}
#?mildew skip 1
# L<S04/Statement parsing/keywords require whitespace>
{
eval_dies_ok('my $i = 1; while($i < 5) { $i++; }',
'keyword needs at least one whitespace after it');
}
# vim: ft=perl6