Удаление значений из строк в цикле while для Ruby - PullRequest
0 голосов
/ 16 марта 2011

Так что я учу еще ДРУГОЙ новый язык, потому что, очевидно, моя компания считает, что мы должны поддерживать все мыслимые вещи под солнцем.На следующей неделе я подозреваю записку о Фортране, автоматизации и перфокартах.Но это ни она, ни там.Мой вопрос заключается в том, что я запускаю цикл (в данном конкретном случае цикл while) и собираю строку у пользователя.Имя питомца.Этот цикл while продолжает повторяться, пока пользователь не прервет его.Однако во второй раз я начинаю получать сообщения от Ruby, в которых говорится, что значения уже заданы.На самом деле это не вызывает проблем, так как программа продолжает работать, но выглядит не очень хорошо.

Есть ли способ очистить значения, чтобы все возвращалось к нулю, кроме значений, которые я хочу, илибыло бы лучше просто поместить все в функции, чтобы не было возможности отрыгивания?

sample:

while moonies > 0
     print "Would you like to punch a kitty? y or n"
     y = gets()
     if y = 'y'
        print "Which kitty would you like to punch?"
        slap = gets()
        if slap == Tom
           print "You spent 50 dollars punching a kitten."
        ....
     else
        print "Is there something else you'd like to kick or did you want to spend no money today?"

и т. Д. И т. П.

Проблема в том, что когда он возвращается к y, это когда сообщения начинают появляться.спасибо за помощь.

1 Ответ

0 голосов
/ 16 марта 2011

Ну ...

if y = 'y'

- это задание, а не сравнение на равенство. y = 'y' всегда верно. Должно быть

if y == "y\n"  #note the newline, you got it from "gets"

if slap == Tom

Это сравнение, но Том - это константа (начинается с заглавной буквы). Я предполагаю, что вы переназначаете значение где-то в вашем цикле. Руби жалуется на это. Проблема новой строки будет здесь снова. slap = gets.chomp избавится от него.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...