2016-02-20 60 views
-3

我運行在我的本地環境中的下列Ruby代碼:爲什麼這個ruby代碼不能做任何事情?

def multiples(max) 
    array = [] 
    (0...max).each do |n| 
     if (n % 3 == 0) || (n % 5 == 0) 
      array << n 
     end 
    end 
    array.inject(:+) 

end 

multiples(1000) 

,並沒有任何反應都沒有。我的代碼看起來不錯。這裏有什麼問題?

+0

您期待什麼結果?你能舉一個較低數字的例子嗎? –

+0

_「什麼都沒有發生」_你期望會發生什麼? – emlai

+0

我期待它返回數組中的所有數字的總和 –

回答

2

我不確定你的期望是什麼,但是如果我把你的代碼粘貼到irb中,它實際上是做了一些事情。

> multiples(1000) 
233168 

如果您運行的代碼作爲命令行Ruby腳本,那麼也許你想打印這個值,所以你可以在控制檯上看到的結果呢?在這種情況下,您想使用puts

puts multiples(1000) 
+0

我正在將它作爲命令行ruby腳本運行,並且我添加了這些puts,但我仍然沒有得到任何東西? –

+0

對不起,我不知道還能說什麼。我將你的確切代碼(加上'puts')粘貼到名爲multiples.rb的文件中,然後運行'ruby multiples.rb'並打印出'233168'。 –

+0

它運行在irb..nothing當我用ruby script.rb運行腳本。我會在一分鐘內接受 –

相關問題