【发布时间】:2015-02-13 11:40:27
【问题描述】:
我是 ruby 新手,也是 stack 新手。我正在尝试对数字数组使用 .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 吗?我使用了错误的方法吗?可以使用每个/地图/或收集来完成吗????提前致谢!
【问题讨论】:
-
详细信息:
gets.chomp.to_i返回与gets.to_i相同的值。