even?メソッド
対象の数値が「偶数」かどうかを判断するメソッド。
対象の要素の値が偶数であれば真を返し、そうでない場合は偽を返します。
これはRubyが元々用意しているメソッドです。
下記URLはeven?メソッドの公式リファレンスです。
https://docs.ruby-lang.org/ja/latest/method/Integer/i/even=3f.html
例1
puts 10.even?
true
# ターミナルの返し
例2
puts 5.even?
false
# ターミナルの返し
even?メソッドを使って偶数血の取得をするプログラムを作成します
配列にある値の中から偶数の数をカウントして出力するメソッドを作ります。
出力例:
count_evens([2, 1, 2, 3, 4]) → 3
count_evens([2, 2, 0]) → 3
count_evens([1, 3, 5]) → 0
def count_evens(nums)
count = 0
nums.each do |num|
if num.even?
count += 1
end
end
puts count
end
count_evens([2, 1, 2, 3, 4])
3
# ターミナルでの返し
解説
- count = 0
今回は、配列の中の偶数がいくつあるのかを数える必要があります。
カウントした数を保持するための変数が必要なので、変数countを用意しました。
変数countをeach文の処理に記述すると、処理が繰り返されるたびにcount = 0が実行されます。
そして、countの数値が0に上書きされるという仕組みです。
- each文内
配列の中にある数字をeach文で1つずつ取り出し、even?メソッドで偶数かどうかの判定をしてもらい、偶数だった場合はcountに1を足していきます。