🐈

next unless 条件 について

2023/12/30に公開

next

ループ処理をスキップするためのもの。

unless

unless 条件で 条件(例えば、count > 0 など)が false の時に処理を実行する。



→ なので、「next unless 条件」 は、条件が false なら next を実行するということ。



next unless 使用例

# 奇数ではない場合に next を実行する

count = 0

(0..10).map do |i|
  next unless i.odd?
  count += 1
  i + 1
end

=> [nil, 2, nil, 4, nil, 6, nil, 8, nil, 10, nil]

上記のコードでは、 (0..10) の範囲内の各要素に対してブロックが実行されます。

next unless i.odd? は、 i が奇数でない場合に next を実行し、それ以外の場合は通常の処理を行います。

奇数の場合、count の値が増え、i + 1 が新しい要素として追加されます。

Discussion