您好我需要帮助克里斯派恩斯的一本书中的问题,该书要求列出起始年和结束年之间的闰年。我已经看到它做了其他方式,但我想知道是否有任何方式使这个代码工作?它出什么问题了?我是编程新手。谢谢! 它给出了这个错误。
(eval):22: (eval):22: compile error (SyntaxError)
(eval):22: syntax error, unexpected $end, expecting kEND
我的节目:
def years(starting, ending)
while starting <= ending
while (starting % 4 == 0) && (starting % 400 == 0)
puts starting
unless starting % 100 == 0
end
starting += 1
end
答案 0 :(得分:3)
错误消息表明代码中的while
循环缺少end
语句。
在不检查逻辑的正确性的情况下,代码本身的结构如下:
def years(starting, ending)
while starting <= ending
while (starting % 4 == 0) && (starting % 400 == 0)
puts starting unless starting % 100 == 0
end
starting += 1
end
end
答案 1 :(得分:0)
您可以使用日期方法跳跃吗?它会返回真或假
require 'date'
def leap_year?(year)
Date.new(year).leap?
end
http://ruby-doc.org/stdlib-2.0/libdoc/date/rdoc/Date.html#method-c-leap-3F