yuuki blog

プログラミング をアプトプットしています。

ruby (searchとeach_with_indexを用いたプログラム)

問題

以下の配列から、数を探して何番目に含まれているか結果を返すメソッドをsearchとeach_with_indexを用いる問題です。

input = [3, 5, 9 ,12, 15, 21, 29, 35, 42, 51, 62, 78, 81, 87, 92, 93]

 

(使用例)

search(12, input)
=> 4番目にあります

search(7, input)
=> その数は含まれていません

 

回答

def search(int, input)
  input.each_with_index  do |item, i|
    if item == int
      puts "#{i + 1}番目にあります。"
      return    #returnを忘れると要素の数繰り返されます。
    end
  end
    puts "その数は含まれません。"
end

int = gets.to_i
input = [3, 5, 9 ,12, 15, 21, 29, 35, 42, 51, 62, 78, 81, 87, 92, 93]
search(int, input)