2015-10-17 94 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')