2014-01-05 27 views
1

我正在創建一個互動故事,而不是遊戲。該選項在if/else中不起作用;這裏是代碼。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語句,並在此設置,在前面的括號井字傢伙,它總是調用第一個選項。請幫忙。

+1

您的換行符在哪裏?當然,你不是想把它作爲一行代碼來運行嗎? – meagar

+0

很抱歉,換行符恰好是他們應該在的位置。在(2)之後沒有「after gets.chomp。all在正確的位置 – user3059932

+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 
+1

(在這種情況下,if #rest of line是註釋'我很驚訝沒有語法錯誤。) – user2864740

+0

有絕對是一個語法錯誤,假設這全部在一行上。但是,我認爲他只是在某種程度上沒有在他的問題中包含換行符。 – meagar

+0

是的,對不起,這就是發生了什麼事。我試圖包括他們,但它一直給我一個錯誤 – user3059932