我是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 /或收集????提前谢谢!
答案 0 :(得分:0)
您也需要在puts
块内each
。此外,您可以除以4
并检查余数是否为0
。无需400
range.each do |year|
puts year if year % 4 == 0;
end
只有满足if条件时才会执行puts year
。