I am trying to answer the following question from Chris Pine\'s \"Learn to Program\" book:
Leap years. Write a program that asks for a starting year and a
This is because the input from gets.chomp
is a String
. You cannot perform modulo (%
) on a String
. You need to convert it to an integer first.
Try this...
puts 'What is the starting year?'
starting_year = gets.chomp.to_i
puts 'What is the ending year?'
ending_year = gets.chomp.to_i
while starting_year <= ending_year
if starting_year%4 == 0 && (starting_year%100 != 0 && starting_year%400 == 0)
puts starting_year
end
starting_year+=1
end
Does that work now?
Add a .to_i to your gets.chomp
calls. You're trying to do math operations on text. When inputted from the console, everything starts out as text, even if it's numeric looking text.