Разные сообщения для разных пользовательских входов - PullRequest
0 голосов
/ 21 марта 2019

Как поместить сообщение (строку) для конкретного ответа (ввод пользователя) и другое сообщение для другого ответа?Например,

puts "Did You Like My Program?"
feedback = gets

if feedback = "Yes"
  puts "We're Glad!"
elsif feedback = "No"
  puts "We Will Try To Improve!"
end

Что я должен изменить, добавить или изменить?

1 Ответ

1 голос
/ 22 марта 2019

Ваша проблема в том, что при сравнении вы должны использовать ==, а не =.

Когда вы вводите в командной строке, вы всегда используете Enter . Выдает \n в конце строки. Поэтому вам нужно удалить его с помощью chomp.

Также, для фильтрации пользовательского ввода, я предлагаю этот вариант:

feedback = nil

until %w[y n].include?(feedback)
  puts 'Did You Like My Program? Y/N'
  feedback = gets.chomp.downcase
end

if feedback == 'y'
  puts "We're Glad!"
else
  puts "We Will Try To Improve!"
end

Краткое объяснение:

  • Код использует Array#include? и String#downcase.
  • %w[y n] равно ["y", "n"].
  • until -loop выполняет код при условии false.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...