配列にある値の中から偶数の数をカウントして出力するメソッドを作ります。
出力例:
count_evens([2, 1, 2, 3, 4]) → 3
count_evens([2, 2, 0]) → 3
count_evens([1, 3, 5]) → 0
even?メソッド
Rubyが元々用意している、対象の数値が偶数かどうかを判断するメソッドです。
対象の要素の値が偶数であれば真を返し、そうでない場合は偽を返します。
def count_evens(nums)
count = 0
nums.each do |num|
if num.even?
count += 1
end
end
puts count
end
配列の中の偶数の数を出力するためにカウントした数を保持するための変数が必要なので、変数countを用意しています。変数countをeach文のループ処理内に記述すると、処理が繰り返されるたびにcount = 0が実行され、countの数値が0に上書きされてしまいます。そのため、countの定義はeach文のループ処理外で行います。
配列に入っている数字をeach文で取り出し、even?メソッドで一つずつ偶数かどうかを確認し、偶数だった場合はcountに1を足していきます。
countに1を追加するための記述はcount = count + 1でも可能ですが、自己代入演算子を使用するとシンプルに記述できるため積極的に使用していきましょう。
each文の処理が終了し、countに代入された最終的な数が偶数の数となります。