Ruby не имеет оператора постинкремента.Когда он видит ++
, он интерпретирует это как один инфикс +
, за которым следует один префикс (унарный) +
.Поскольку он ожидает, что после этого последует операнд, но вместо этого находит ключевое слово end
, вы получаете синтаксическую ошибку.
Вам необходимо заменить x++
на x += 1
.
Более тогообратите внимание, что x
на самом деле не входит в область действия метода roman_to_integer
(что не является синтаксической ошибкой, но, тем не менее, ошибочным).
Кроме того, вам придется заменить все ваши if
s.кроме первого с elsif
с.То, как вы написали это, все if
являются вложенными, что означает, что a) вам не хватает end
s и b) код не имеет нужной вам семантики.