如果条件无法在Ruby中识别

时间:2011-08-20 10:07:20

标签: ruby

我正在通过编写一个简单的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)

1 个答案:

答案 0 :(得分:3)

您似乎必须在userchoice上调用.strip,否则该字符串将包含尾随\n