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 を使った場合は、そのブロックの処理のみがスキップされる。