ruby - 计算两个预定年份之间的闰年

标签 ruby output

如标题所示,我需要帮助理解有关计算两个开始年份之间的闰年的问题,当从命令行执行程序时,无论输入如何,我总是收到相同的输出。

我的代码如下:

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_1num_year_2 分配给 year_1.to_i,而后者应该分配给 year_2.to_i

关于ruby - 计算两个预定年份之间的闰年,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24579459/

相关文章:

jquery - 最像 jQuery 的 Ruby HTML 解析器

ruby - 子类中是否可以访问 Ruby 私有(private)方法?

ruby-on-rails - 运行 bundle install 时出现 Ruby 错误

r - 在 R 中抑制来自 zip 的消息

ruby - 你如何将 cucumber 场景标记为待处理

ruby-on-rails - 将两个 ActiveRecord 关联集合合并为单个关联集合

java - REST 流式 JSON 输出

java - 在 GUI 中使用预定义的字符串

bash - 不要在多个 bash 脚本中显示 pushd/popd 堆栈(安静的 pushd/popd)

phpunit - 如何替换phpunit断言消息?