LoginSignup
0
0

More than 1 year has passed since last update.

evenメソッドで偶数値の取得

Posted at

問題

配列にある値の中から偶数の値をカウントして出力するメソッドを作りましょう。

出力例:

count_evens([2, 1, 2, 3, 4]) → 3
count_evens([2, 2, 0]) → 3
count_evens([1, 3, 5]) → 0

ヒント
even?というメソッドを使いましょう。
 
 
 

解答

def count_evens(nums)
  count = 0
  nums.each do |num|
    if num.even?
      puts count
    end
  end
end

 
 
 

模範解答

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が繰り返し処理されてしまうのでeach文のループ外で定義する事。

even?メソッドとは
偶数であればtrue、そうでない場合はfalseを返します。

10.even? # => true
5.even?  # => false

each文で数字を順に取り出し、even?メソッドで一つずつ偶数か判断し、偶数だった場合はcountに1を足していく。

each文の処理が終了し、countに代入された最終的な数が偶数の数となる。
 
 
 
 

まとめ

変数countに対しcount = 0しか設定できていなかった為、偶数だった場合のみ数をカウントしていく(count +=1)をできていなかった。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0