0

嗨,我需要克里斯派恩斯书中的一个问题的帮助,该问题要求列出开始年份和结束年份之间的闰年。我已经看到它以其他方式完成,但我想知道是否有任何方法可以使这段代码工作?它出什么问题了?我是编程新手。谢谢!它给出了这个错误。

(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
4

2 回答 2

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
于 2013-03-16T04:48:10.707 回答
0

你可以使用日期方法跳跃吗?它将返回 true 或 false

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

于 2013-03-16T04:43:12.583 回答