我一直在学习Ruby。我写了一个小程序。我面临一个逻辑错误,目前我无法解决这个错误。这是代码。在Ruby中使用Modulus%操作符时出现逻辑错误
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, 我的意思是说它也应该显示1600,但程序只是简单地跳过它。我知道这只是一个像错误一样的发际线。但我无法弄清楚。
P.S.我是一个新手,所以请忽略任何一种愚蠢的错误。由于
这工作。非常感谢。你救了我的一天:) – 2013-02-21 21:46:57