if / else语句中的变量不起作用

时间:2014-01-05 09:04:53

标签: ruby

我正在创造一个互动故事,而不是游戏。这些选项在if/else中不起作用;这是代码。

puts "Choose (1)yes or (2)no"
choice = gets.chomp
if #{choice}==1
  puts "you chose yes"
elsif #{choice}==2
  puts "you chose no"
else
  puts "Invalid Choice"

我试着离开它介绍,但是只调用else语句,并且通过这个设置,括号前面的tic tac toe man,它总是调用第一个选项。请帮忙。

1 个答案:

答案 0 :(得分:5)

if #{choice}==1不是你如何测试变量的值。 #{}用于字符串插值;你不必插入任何东西。只需使用if choice == "1"即可。请注意,因为您正在从控制台读取字符串,所以需要与"1"进行比较,而不是1

puts "Choose (1)yes or (2)no"

choice = gets.chomp

if choice == "1"
  puts "you chose yes"
elsif choice == "2"
  puts "you chose no"
else
  puts "Invalid Choice"
end