2015-10-17 101 views
-1

爲了好玩,我一直致力於製作銀行劇本。 當前版本應該要求一個帳戶,然後把帳戶的價值。但它唯一做的是打印一條錯誤消息。爲什麼這個ruby腳本打印這個而不是這個?

account0 = 151243 
account1 = 54645 
account2 = 423 
account3 = 1 
account4 = 9535 
puts "Which account do you want to view?" 
getacc = gets.chomp 
puts "Getting Account #{getacc}" 
if getacc == 1 
    puts "#{account0}" 
elsif getacc == 2 
    puts "#{account1}" 
elsif getacc==3 
    puts "#{account2}" 
elsif getacc == 4 
    puts "#{account3}" 
elsif getacc == 5 
    puts "#{account4}" 
else 
    puts "Error 1 Account not found" 
end 

即時通訊仍然在學習紅寶石,所以它可能只是我的代碼中的一個簡單的錯誤。 謝謝!

回答

0

因爲gets.chomp返回一個字符串不是一個整數,但你檢查是否getacc是一個數字。

只需更改與gets.chomp到行:

getacc = gets.chomp.to_i 

而且順便說一句。這是我將如何實現你的例子:

ACCOUNTS = { 1 => 151243, 2 => 546451, 3 => 4231, 4 => 11, 5 => 9535 } 

puts 'Which account do you want to view?' 
account_number = gets.to_i 

puts "Getting Account #{account_number}" 
puts ACCOUNTS.fetch(account_number, 'Error 1 Account not found')