如标题所示,我需要帮助理解有关计算两个开始年份之间的闰年的问题,当从命令行执行程序时,无论输入如何,我总是收到相同的输出。
我的代码如下:
while true
puts 'Input starting year:'
year_1 = gets.chomp
num_year_1 = year_1.to_i
puts 'Input second year:'
year_2 = gets.chomp
num_year_2 = year_1.to_i
puts 'These are the leap years between these two years:'
if num_year_1 > num_year_2
while num_year_1 >= num_year_2
if num_year_1 % 4 == 0 && num_year_1 % 100 == 0
puts num_year_1
end
num_year_1 -= num_year_1 - 1
end
elsif num_year_2 > num_year_1
while num_year_2 >= num_year_1
if num_year_2 % 4 == 0 && num_year_2 % 100 == 0
puts num_year_2
end
num_year_2 -= 1
end
elsif num_year_1 == num_year_2
puts 'These 2 years are the same, please try again.'
end
if year_1 == 'end'
break
end
end
我总是收到这个作为输出:
These are the leap years between these 2 years:
These 2 years are the same, try again
唯一影响这一点的输入是“结束”命令,它以相同的输出回复但确实完成了循环中的中断。
我不明白为什么会这样,因为在我看来,我的程序具有正确的 ruby 语法,因此将不胜感激。
最佳答案
您现有的代码:
puts 'Input starting year:'
year_1 = gets.chomp
num_year_1 = year_1.to_i
puts 'Input second year:'
year_2 = gets.chomp
num_year_2 = year_1.to_i
应该改为:
puts 'Input starting year:'
year_1 = gets.chomp
num_year_1 = year_1.to_i
puts 'Input second year:'
year_2 = gets.chomp
num_year_2 = year_2.to_i
问题是您将 num_year_1
和 num_year_2
分配给 year_1.to_i
,而后者应该分配给 year_2.to_i
关于ruby - 计算两个预定年份之间的闰年,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24579459/