初記事
プログラミング初心者
勉強したことで気になったこと、書き留めておこうと思ったこと、オリジナルアプリ作る際などに記事にしていきます。
初記事は標題の配列内の偶数を数える方法
で書きます。
何時ごろか忘れましたがかなり前に同じ問題を解きました。
初めて解くときは途中でわからなくなり解説付きの答えを見ました。
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_evens([2, 2, 0]) → 3
count_evens([1, 3, 5]) → 0
今は普通に理解できるので簡単に解説すると、配列の中の数字をとりあえず全部出してみてif分で条件に合うものをカウントしたら偶数がカウントできちゃうという仕組み。(ざっくりだけど合ってるよね?)
今回はこの問題に2回目に挑戦。
上記で書いた内容はちょっと忘れてて、何も見ずに問題を解きました。
※今回の回答
def count_evens(num)
puts num.count{ |i| i.even? }
end
カウントするからcountメソッド使えばいいか〜でこんな感じ。
理解を深めるためと解説するにあたって少し調べました。
countメソッド 公式リファレンス
リファレンスにも書いてあることですが、countメソッドはブロックを指定した場合、真の値を数えてくれるというやつ。
初めに見た解説付きの答えと同じ結果が出力されました。(よきよき)
この考えで本当に合ってるかどうかわかりません。何か間違ってるとこなどあればご指摘いただければと。
でわ良き日曜日を