尝试使用每种方法找到可整除的数字并打印它们
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 来完成吗????提前致谢!
您也需要 puts
在 each
块内。此外,您可以除以 4
并检查余数是否为 0
。不需要 400
range.each do |year|
puts year if year % 4 == 0;
end
只有满足if条件才会执行puts year
我是 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 来完成吗????提前致谢!
您也需要 puts
在 each
块内。此外,您可以除以 4
并检查余数是否为 0
。不需要 400
range.each do |year|
puts year if year % 4 == 0;
end
只有满足if条件才会执行puts year