ループについて(while/until)


ループについて(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)
Task Runner