LoginSignup
0
0

More than 1 year has passed since last update.

【Ruby】偶数値の取得

Posted at

※初心者向け
※アウトプット練習の為
※学習の復習

開発環境
rails 6.0.4.4
ruby 2.6.5

問題内容

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

出力例:
count_evens([2, 1, 2, 3, 4]) → 3
count_evens([1, 3, 5]) → 0

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

even?メソッド
Rubyが元々用意している、対象の数値が偶数かどうかを判断するメソッドです。
対象の要素の値が偶数であれば真を返し、そうでない場合は偽を返します。

10.even?
#=> true

5.even?
#=> false

解答

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に代入された最終的な数が偶数の数となります。

0
0
1

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