ループについて(while/until)
whileとuntilは真逆の性質ですが、whileばかりを多用してしまうのでuntilと比較してみました。
関数 | 整列 |
---|---|
while | 条件を満たしたときにループを抜ける |
until | 条件に満たないときにループを抜ける |
while
my $i = 20;
while ($i > 10) { # 条件に満たないとき(この場合iが11を下回ったとき)にループを抜ける
printf "++ (%d)\n", $i;
$i--; # ブロックの最後でデクリメント
}
printf "-- (%d)\n", $i;
++ (20)
++ (19)
++ (18)
++ (17)
++ (16)
++ (15)
++ (14)
++ (13)
++ (12)
++ (11)
-- (10)
until
my $i = 0;
until ($i > 10) { # 条件を満たしたとき(この場合iが10を上回ったとき)にループを抜ける
printf "++ (%d)\n", $i;
$i++; # ブロックの最後でインクリメント
}
printf "-- (%d)\n", $i;
++ (0)
++ (1)
++ (2)
++ (3)
++ (4)
++ (5)
++ (6)
++ (7)
++ (8)
++ (9)
++ (10)
-- (11)