我一直在学习Ruby。我写了一个小程序。我面临一个逻辑错误,到目前为止我无法修复。这是代码。
1: puts 'Please enter the starting Year'
2: startingYear = gets.chomp
3: puts 'Please enter the ending Year'
4: endingYear = gets.chomp
5: while(startingYear.to_i <= endingYear.to_i)
6: if(startingYear%4 == 0)
7: if((startingYear%400 == 0) or (startingYear%100 != 0))
8: puts startingYear
9: end
10: end
11: startingYear = startingYear.to_i + 1
12: end
这是这个程序的作用。
它要求开始年份和结束年份,然后在它们之间“放置”所有闰年(如果它们也是闰年,则包括它们)。闰年是能被四整除的年份(如 1984 年和 2004 年)。但是,可以被 100 整除的年份不是闰年(例如 1800 和 1900),除非它们可以被 400 整除(例如 1600 和 2000,它们实际上是闰年)。
我也使用了 Ruby 调试器。当我执行程序时,它只是在第一次迭代时跳过第 6 行。之后它工作得很好。
例如:当我使用输入 1600 作为起始年份和 2000 作为结束年份时。然后输出从:
1604、1608、1612、…… . . . . 1696、1704、1708、…… . . . . . 1992, 1996, 2000
我的意思是逻辑上它也应该显示 1600 但程序只是跳过它。我知道这只是一条发际线之类的错误。但我就是想不通。
PS我是新手,所以请忽略任何愚蠢的错误。谢谢