2016-02-20 122 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运行脚本。我会在一分钟内接受 –

相关问题