尝试使用每种方法找到可整除的数字并打印它们

trying to use each method to find divisible numbers and print them

我是 ruby 的新手,也是堆栈的新手。我正在尝试对数字数组使用 .each 方法来查看哪些数字可以被 4 和 400 整除。它基于 Chris Pine 的 "Learn to Program" 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 吗?我用错方法了吗?完全可以使用 each/map/or collect 来完成吗????提前致谢!

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

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

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