Вопрос про "попадает" в рубин - PullRequest
5 голосов
/ 14 марта 2011

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

Это пример вывода.

Hello World!

What is the dog's new name? bob

Would you like bob
 to speak? (y or n) y

OK...

Ответы [ 2 ]

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

Проблема в том, что вы получаете символ новой строки на вводе от пользователя.в то время как они вводят "y", вы фактически получаете "y \ n".Вам нужно скомпоновать символ новой строки, используя метод "chomp" для строки, чтобы он работал так, как вы хотите.что-то вроде:

speak_or_no = gets
speak_or_no.chomp!
while speak_or_no == "y"
  #.....
end
0 голосов
/ 14 мая 2013

как только вы используете get () ... вывести эту строку .. используя p (str) обычно строка будет иметь \ n в конце .. chomp! метод должен быть использован, чтобы удалить его ...

...