初めての投稿
CODEPREP「Ruby 配列・Hash・Class 操作演習」1-2
問題文が「1からnまで数値を要素に持つ配列を返す create_array メソッドを実装しましょう。」だったので
まず作ってみましたが
def create_array(n)
if n <= 0
array = []
return array
else
array = Array.new(n){|a| a}
end
end
これだと
メソッド create_array(10) の返り値は "[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]" でした。期待される値は "[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]" です。
となってしまいました。
なので
array = Array.new(n+1){|a| a}
としましたが
それだと今度は
メソッド create_array(10) の返り値は "[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]" でした。期待される値は "[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]" です。
となり、最後の要素は10が出るが、最初の要素が0のままでした。(そもそも配列の要素数が1個増えてしまう。}
最後に
array = Array.new(n){|a| a+1}
でうまく表示された。
CODEPREPの演習問題は答え合わせがないので、合っているのか不安になります。。。