私はのLearn Ruby the Hard Wayです。Rubyのループと関数への変換
エクストラクレジットエクササイズ1が求められます。
Convert this while loop to a function that you can call, and replace 6 in the test (i < 6) with a variable.
をコード:
i = 0
numbers = []
while i < 6
puts "At the top i is #{i}"
numbers.push(i)
i = i + 1
puts "Numbers now: #{numbers}"
puts "At the bottom i is #{i}"
end
puts "The numbers: "
for num in numbers
puts num
end
私の試み:
i = 0
numbers = []
def loops
while i < 6
puts "At the top i is #{i}"
numbers.push(i)
i = i + 1
puts "Numbers now: #{numbers}"
puts "At the bottom i is #{i}"
end
end
loops
puts "The numbers: "
for num in numbers
puts num
end
あなたが見ることができるように、私がしようとして限りですブロックを関数に変換し、変数を変数に変更しないでください。
エラー:
ex33.rb:5:in `loops': undefined local variable or method `i' for main:Object (Na
meError)
from ex33.rb:15:in `<main>'
from ex33.rb:15:in `<main>'
は私が間違って何をしているのですか?
EDIT:さて、少し改善しました。あなたがdef
を言うとき今の数字の変数がスコープ外にある...
def loops (i, second_number)
numbers = []
while i < second_number
puts "At the top i is #{i}"
i = i + 1
numbers.push(i)
puts "Numbers now: #{numbers}"
puts "At the bottom i is #{i}"
end
end
loops(0,6)
puts "The numbers: "
for num in numbers
puts num
end
私はまた、変数と6を置き換える引数を持つ関数を思い付いた、私はOPを編集しましたコード。しかし、あなたが言ったように、現在の数字は見えません... – Stn