Не могу найти ошибку в коде ruby

программирование ruby

Учусь писать на ruby, вот одно из первых творений:
def help
puts'Введите 1 для определения суммы денег, 2 для добавления, 3 для снятия, 4 для помощи, stop для выхода'
end
choise=''
allm=0
mplus=0
mmns=0
def next_choise
puts'Выберите следующее действие'
end
def money_all
puts'Сколько на счету?'
allm=gets.chomp.to_i
end
def money_plus
puts'Сколько положить на счёт?'
mplus=gets.chomp.to_i
puts'На счету: ' + (allm+=mplus)
end
def money_minus
puts'Сколько снять со счёта?'
mmns=gets.chomp.to_i
puts'На счету: ' + (allm -= mmns).to_s
end
help
while choise!='stop'
choise=gets.chomp
if choise == '1' then money_all
next_choise end
if choise == '2' then money_plus
next_choise end
if choise == '3' then money_minus
next_choise end
if choise == '4' then puts'Выберите действие' end
end

Два вопроса:
1. Указываю сумму и хочу положить\снять со счёта, выбивает ошибку Experimental .rb:18:in 'money_plus': undefined method '+' for nil:NilClass (NoMethodError) from Experimental .rb:30
строка 18 - это puts'На счету: ' + (allm+=mplus) , не вижу ошибку, аналогично с методом money_minus - ругается на "-", писал ...=...+\-... , колдовал с пробелами, не помогло
2.Как убрать обработку choise через if? Можно натыкать elseif и else, но это не то. Я помню, что в С можно написать условие и варианты действий, switch кажется, а в руби о таком ничего найти не могу


Примечание:
Jesterok, спасибо за ссылку. puts, print и p отлично работают с одинарными, я читал о некоторых тонкостях использования кавычек, но в таких простых программах это не имеет значения
Ответы:
puts'На счету: ' + (allm+=mplus).to_s
Да, есть switch, но это по сути красивая запись этих самых блоков с else if. Причем, используя switch, можно перебирать только константы. В руби (гугл рулит) подобная конструкция будет выглядеть как case choise when '1' ... итд [1]
Да и вы ставите вроде бы одинарные ковычки... а разве не нужно двойные?


14 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.