我正在通过编写一个简单的ChingChongCha程序来测试我的Ruby基础知识。我的一个方法采用输入的选择并将其转换为数字(为了方便将来在程序中使用)但是这个if语句保持默认为'else'条件,即使我可以清楚地看到如果输入了rock与ROCK完美匹配if条件。有什么想法吗?
def user_choice(choice)
# 1 is rock
# 2 is paper
# 3 is scissors
userintchoice = 0
choice.upcase!
# turns user's choice into an integer
puts choice #debugging
if (choice == 'ROCK') then
userintchoice = 1
elsif (choice == 'PAPER') then
userintchoice = 2
elsif (choice == 'SCISSORS') then
userintchoice = 3
else
puts "Invalid Choice!"
end
return userintchoice
end
调用此方法并获取输入的代码是:
puts "What would you like to choose (input Rock, Paper or Scissors and <ENTER>)?"
userstringchoice = gets()
userchoice = user_choice(userstringchoice)
答案 0 :(得分:3)
您似乎必须在userchoice上调用.strip
,否则该字符串将包含尾随\n
。