2011-08-20 29 views
0

我正在通过编写一个简单的ChingChongCha程序来测试我的Ruby基础知识。我的一种方法是将输入的数据转化为数字(为了将来在程序中易于使用),但如果这个语句保持默认为'其他'条件,即使我能清楚地看到如果输入了岩石与ROCK完美匹配。有任何想法吗?如果在Ruby中不识别条件

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

看来你要调用.strip上userchoice,否则该字符串将包含一个尾随\n

+0

哦,太棒了,甚至没有想到这一点。它是固定的。非常感谢你的建议。我不习惯在Java中看到的东西。 – NickP