试图使用每种方法来找到可分割的数字并打印它们

时间:2015-02-13 03:35:54

标签: ruby each

我是ruby的新手,也是堆叠的新手。我试图在一组数字上使用.each方法来查看哪些数字可被4和400整除。它基于Chris Pine的练习"学习编程" Ruby教程。在它中你应该从用户输入的一系列年份中找到闰年,然后打印它们。我使用if / else语句完成了这个...但在我看来,应该可以使用each方法,或者map方法来完成?更少的代码。

例如:

puts "Enter two years (to - from) to find out which years are leap years!" 

puts "Enter the first year.."

year1 = gets.chomp.to_i

puts "Now enter the second year"

year2 = gets.chomp.to_i

range = (year1..year2).to_a

puts "These are the leap years between those years:"

range.each do |year|

leaps = (year % 4 == 0 || year % 400 == 0)

end

puts leaps

这段代码可能不正确,但我玩弄了不同的方法(放入.each,定义变量等等)但似乎没有任何效果。就像我说的那样,我用if / else来完成它......我觉得可能有更好的方法,而且它让我疯狂。我不正确理解.each吗?我用错了方法吗?是否可以使用每个/ map /或收集????提前谢谢!

1 个答案:

答案 0 :(得分:0)

您也需要在puts块内each。此外,您可以除以4并检查余数是否为0。无需400

range.each do |year|
   puts year if year % 4 == 0;
end

只有满足if条件时才会执行puts year