配列にある値の中から、偶数の数をカウントして出力するメソッドを作ります。
値が偶数かどうかの判定はeven?メソッド
を使います。
出力例:
count_evens([2, 1, 4, 6]) → 3
解答1
def count_evens(nums)
count = 0
nums.each do |num|
if num.even?
count += 1
end
end
puts count
end
- 偶数の数を入れておく
変数count
を用意 - eachメソッドで配列の中を1つずつ取り出して
even?メソッド
で偶数か判定 - 偶数だったら
count
に1を足す - これを繰り返して最後に
count
を出力する
解答2
解答1と比べるとまどろっこしい感じですが・・・
def count_evens(nums)
result = []
nums.each do |num|
if num.even?
result << num
end
end
puts result.length
end
-
result = []
は偶数の値を入れるための配列 - 解答1と同じく、eachメソッドで配列の中を1つずつ取り出して
even?メソッド
で偶数か判定 - 偶数なら
result << num
で配列の中にその偶数を入れる - 最後に
result.length
で配列の中の要素数(つまりここでは配列の中に入っている偶数)がいくつあるか出力
おまけ
奇数かどうか判定するときはodd?メソッド