Menu
Coddy logo textTech

復習:カスタムイテレータ

CoddyのRubyジャーニー「ロジックとフロー」セクションの一部 — レッスン 20/56。

この章のすべてを組み合わせて、yieldを使用し、ブロックを受け取り、有用な値を返す独自のイテレータメソッドを作成しましょう。

challenge icon

チャレンジ

中級

配列 numbers を受け取り、配列内の各偶数をそのブロックに yield する(奇数は完全にスキップする) each_even という名前のメソッドを定義してください。

次に、カンマ区切りの整数のリストを読み込み、yield された各値に対して "Even: <n>" を出力するブロックを渡して each_even を呼び出し、最後に以下を出力してください:

Done: <count>

ここで、count は yield された偶数の数です。

入力が 1,2,3,4,5,6 の場合、出力は以下のようになります:

Even: 2
Even: 4
Even: 6
Done: 3

自分で試してみよう

# TODO: 各偶数をyieldするeach_even(numbers)を定義してください

numbers = gets.chomp.split(",").map(&:to_i)
count = 0

# TODO: "Even: <n>"を表示し、yieldされた値ごとにcountを
# インクリメントするブロックを渡してeach_evenを呼び出してください

puts "Done: #{count}"

ロジックとフローのすべてのレッスン