0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Ruby】配列内の偶数or奇数のカウント方法

Last updated at Posted at 2020-11-04

配列内にある値について、偶数もしくは奇数の数のカウントをするメソッドを作成します。

値が偶数の場合はeven?メソッドを使用し、奇数の場合はodd?メソッドを使用します。
※以下は偶数パターンのみ記載しています。evenをoddに変換することで奇数のカウントに使用できます。

使用例

Ruby
number = 2
number.even?

// trueが返却される

解答例

Ruby
def count(number)
  count = 0
  number.each do |num|
    if num.even?
      count += 1
    end
  end
  puts count
end

解説

今回はメソッド作成のため、まず一行目にメソッド名と仮引数のnumberを記述しています。

Ruby
def count(number)

上述の通りeven?メソッドはtrueもしくはfalseのみ返却するため単体ではカウントできません。
そのため以下のように配列に対してeven?メソッドを使用するとエラーが発生します。

失敗例

Ruby
hairetsu = [1,2,6,8,10]
hairetsu.even?

// NoMethodError (undefined method `even?' for [1, 2, 6, 8, 10]:Array)

なお、二行目でcount = oと記載していますが、繰り返し処理の前に記載することでカウントの初期化をしています。

カウントするためにはeachメソッドによる繰り返し処理で行います。
流れとしてはtrueだった場合にはカウントアップし、falseの場合は何もせず次の要素の判定に進む、といったものです。

Ruby
number.each do |num|
  if num.even?
    count += 1
  end
end

最後にカウントしたものを出力するためにputsメソッドを使用しています。

Ruby
puts "count"

これで汎用的な配列内の偶数or奇数のカウントメソッドを作成することができました。
メソッドを呼び出す際はメソッド外から実引数に配列を指定してコールすることをお忘れなく。

0
1
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
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?