next文を使って次の繰り返し処理へ進む

while 文や for 文などの繰り返し処理の中で next 文が実行されると next 文以降の処理を行わずに次の繰り返し処理へ進ませることができます。ここでは Ruby で next 文を使って次の繰り返し処理へ処理を進める方法について解説します。

(Last modified: )

next文の使い方

next 文が実行されると、最も内側の繰り返し処理の次の繰り返し処理へ進みます。ここで繰り返し処理とは次のいずれかです。

while文
until文
for文
イテレータ(each、times、upto、downto、step、loopなどのメソッド)

次の例では each メソッドを使った繰り返し処理の中で、繰り返し回数が 3 の倍数でない場合は next 文を使って次の繰り返し処理へ処理を進めています。

count = 0

("aa".."az").each{|str|
  count += 1
  if count % 3 != 0 then
    next
  end

  puts(str);
}

範囲オブジェクト "aa".."az" に対して each メソッドを使って順に要素を取り出し画面に表示しています。本来であれば aa から az まで順に表示しますが、別途繰り返した回数をカウントし、カウントを 3 で割った余りが 0 でない時は next 文以降の処理をスキップし次の繰り返しへ進みます。結果的に 3 回に 1 回だけ要素が画面に表示されます。

なお繰り返しが入れ子になっている場合は next 文が実行された一番内側の繰り返しに関して次の繰り返しへ進みます。

while ...
  ...
  for ...
    next
  end
  ...
end

上記の場合であれば next 文によって for 文の次の繰り返しへ進みます。

サンプルコード

では簡単なプログラムで確認してみます。

# encoding: UTF-8

count = 0

puts("[start]")

("aa".."az").each{|str|
  count += 1
  if count % 5 != 0 then
    next
  end

  puts(str);
}

puts("[end]")

下記のように実行して下さい。

next

-- --

Ruby で next 文を使って次の繰り返し処理へ処理を進める方法について解説しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。