正如在标题中一样,我需要帮助理解一个关于计算两个起始年之间的闰年的问题,当程序从命令行执行时,无论输入是什么,我总是收到相同的输出。
我的代码如下:
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
唯一影响这一点的输入是“end”命令,它用相同的输出进行响应,但完成了循环中的中断。
我不明白为什么会发生这种情况,因为在我看来,我的程序有正确的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 - 计算两个预定年之间的leap年,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24579459/