redo文

Ruby

while文の中で redo と書くと、そこでループの先頭に戻る。戻ったときに while の条件式は評価されず、無条件にループが再開される。

i = 0
while i < 5
  if i == 1
    i = 3
    redo
  end
  puts i
  i += 1
end
# =>
#    0
#    3
#    4

Perl

while文の中で redo と書くと、そこでループの先頭に戻る。

my $i = 0;
while () {
    print "Start $i\n";
    if ($i % 5 == 0) {
        $i++;
        redo;
    }
    if ($i == 7) {
        last;
    }
    print "End   $i\n";
    $i++;
}
# 以下のように表示される
# Start 0
# Start 1
# End   1
# Start 2
# End   2
# Start 3
# End   3
# Start 4
# End   4
# Start 5
# Start 6
# End   6
# Start 7
このサイトは筆者(hydrocul)の個人メモの集合です。すべてのページは永遠に未完成です。