Я пишу простой калькулятор, который спрашивает пользователя, какое вычисление он хочет выполнить с выбором между «+», «-», «*» и «/».
Код работает, когда я разделяю каждый параметр с помощью ||. Тем не менее, я бы предпочел использовать .include? чтобы избежать повторения.
while play_again != "N"
puts "Enter a first number:"
first_num = gets.chomp.to_i
puts "Enter a second number:"
second_num = gets.chomp.to_i
puts "Which operation would you like to perform? '+', '-', 'x', '/'"
operator = gets.chomp
if operator == "+" || operator == "-" || operator == "x" || operator
== "/"
puts calculator(first_num, second_num, operator)
else
puts "That wasn't a valid selection."
end
puts "Do you want to calculate something else? (Y/N)"
play_again = gets.chomp
end
Я пытался переписать строку, начинающуюся с if operator
, с if operator.include?(%w[+ - X /].to_s)
, но это неправильно фиксирует вводимые пользователем данные и всегда выдает «Это неверный выбор».