2013-12-22 4 views
-1

Я пытаюсь рассчитать возраст, расы и предполагаемый срок жизни, определенный расы. Но я столкнулся с проблемой здесь, особенно с последней строкой кода. Может ли кто-нибудь помочь?Вычитание переменных

puts "What year were you born? " 
age = gets 
puts age 
var1 = age 
puts "sorry, i am a slow computer... What year is it?" 
year = gets 
var2 = "2013" 
puts "ok it is" + year + "so you must be" 
puts var2 - var1.to_i 
+1

Почему нет '.to_i' на' var2'? –

+0

Почему вы читаете год и затем используете 2013 в своих расчетах, независимо от ответа пользователя? – pjs

+0

Я использую 2013 год, потому что его 2013 год. Я изменю его через пару дней. Но спасибо, ребята, заметив эту ошибку! – JoeWantsToKnow

ответ

0

var2 в этом случае является строкой, поскольку вы помещаете кавычки в течение года. Просто используйте .to_i на var2, и все должно быть в порядке.

1

Вы на правильном пути, однако проблема заключалась в том, что вы не преобразовали var2 в integer, интерпретатор ruby ​​видит в нем строку, а значит, и ошибку. Это правильный код.

puts "What year were you born? " 
age = gets 
puts age 
var1 = age 
puts "sorry, i am a slow computer... What year is it?" 
year = gets 
var2 = "2013" 
puts "ok it is" + year + "so you must be" 
puts var2.to_i - var1.to_i 
1

Вы пытаетесь вычесть целое число из строки. Это вызовет ошибку.

Я думаю, что вы ищете что-то подобное;

puts "What year were you born?" 
born = gets.chomp 
puts "sorry, i am a slow computer... What year is it?" 
date = gets.chomp 
age = date.to_i - born.to_i 
puts "ok it is #{date} so you must be #{age}" 
Смежные вопросы