Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如果条件在Ruby中无法识别_Ruby - Fatal编程技术网

如果条件在Ruby中无法识别

如果条件在Ruby中无法识别,ruby,Ruby,我正在通过编写一个简单的清唱茶程序来测试我的Ruby基础知识。我的一个方法是将输入的选项转换成一个数字(便于将来在程序中使用),但是这个if语句始终默认为“else”条件,尽管我可以清楚地看到,如果输入了rock,它将与if条件完全匹配。有什么想法吗 def user_choice(choice) # 1 is rock # 2 is paper # 3 is scissors userintchoice = 0 choice.upcase! # turns user'

我正在通过编写一个简单的清唱茶程序来测试我的Ruby基础知识。我的一个方法是将输入的选项转换成一个数字(便于将来在程序中使用),但是这个if语句始终默认为“else”条件,尽管我可以清楚地看到,如果输入了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)
显示“您想要选择什么(输入石头、布或剪刀和)
userstringchoice=gets()
userchoice=user\u choice(userstringchoice)

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

请发布调用此函数的代码,包括您从何处获得的代码用户输入。请发布调用此函数的代码,包括从何处获得用户输入。哦,太棒了,我甚至没有想到这一点。已经修好了。非常感谢你的建议。一些我不习惯在Java中看到的东西。哦,太棒了,我甚至没想过。已经修好了。非常感谢你的建议。我不习惯在Java中看到的东西。