【Ruby入門】next の使い方(繰り返し処理をスキップする)

next を使うと、繰り返し処理を途中でスキップさせることができます。

以下から Rubyでの「next」の使い方を解説していきます。

 

next の基本

「next」を使うと、ブロック内のその後の処理を行わずに、次の処理にスキップさせることができます。

繰り返し処理の中で

next

と記述するだけで使えます。

next と組み合わせて使える繰り返しの構文例

 

next を使ったプログラム例

実際にプログラムを書いて動作を確認してみましょう。

 

繰り返し処理をスキップする

以下は、「actions」の変数に入っている配列の要素を順番に表示し、"skip" が出たら次の繰り返し処理にスキップする例。

プログラム
actions = ["processing", "processing", "skip", "processing"]

actions.each do |action|
  if action == "skip"
    next
  end

  p action
end
実行結果
"processing"
"processing"
"processing"
メモ

配列の使い方について詳しくはこちら

each で配列の要素をひとつずつ取り出し、action == "skip" の条件に一致したら next が実行され、以降の p action は実行せずに次の繰り返し処理が開始されます。

そのため、配列の "processing" の要素は表示されますが、途中にある "skip" は表示されません。

 

多重の繰り返し処理で next を使う

以下は2重の繰り返し処理の中で、next を使う例。

プログラム
3.times do
  3.times do
    next
    p "内側のループ処理中"
  end
  p "外側のループ処理中"
end
実行結果
"外側のループ処理中"
"外側のループ処理中"
"外側のループ処理中"
メモ

times を使うと、指定した回数だけ 繰り返し処理を行うことができます。詳しくはこちら

2重のループの中で next を使うと、内側のブロックの処理がスキップされます。外側のブロックの処理がスキップされることはありません。そのため、p "内側のループ処理中" というコードはスキップされて実行されませんが、p "外側のループ処理中" のコードは実行されます。

 

まとめ

以上、Rubyでの「next」の使い方でした!

 

ここまでの内容をまとめておきます。

  • 「next」を使うと、ブロック内のその後の処理を行わずに、次の処理にスキップさせることができる。
  • next と組み合わせて使える繰り返しの構文には、each, while, until, for, times, upto, downto, loop がある。
  • 多重の繰り返し処理のブロック内で next を使った場合は、そのブロックの処理のみがスキップされる。