如何修复if语句

时间:2013-10-10 21:00:13

标签: ruby if-statement

我编写了一个程序,用户输入日期以查找某些股票信息。

我使用了一系列if语句,因此程序可以查找他们想要的信息类型。用户可以查找10种不同类型的信息:“打开”,“高”,“低”,“关闭”,“音量”,“更改”,“百分比变化”,“调整结束”,“交易价值” “,”交易量“。

问题是,当该类型的信息不存在信息时,该程序不起作用。

这是出现的错误:

lookup.rb:75:in `<main>': undefined method `[]' for nil:NilClass (NoMethodError)

这是我的if陈述之一:

if input == "open"
  if data[1] != nil
    puts "The open of your stock is: " +  data[1]
  else
    puts "Sorry, but that value wasn't recorded"
  end
end

让我知道你需要其他程序。

2 个答案:

答案 0 :(得分:2)

您可以执行类似

的操作
if data && data[1] != nil

将在尝试访问data元素

之前检查data[1]是否存在

答案 1 :(得分:0)

如果没有剩余的代码,这只是在您使用data时它看起来没有问题。如果是这种情况,请不要这样做。

这样的事情可能有所帮助:

if input == "open" && !data.nil?
    if data[1] != nil
        puts "The open of your stock is: " +  data[1]
    else
        puts "Sorry, but that value wasn't recorded"
    end
end

但如果我们让您的代码可以查看,那么可能会有更好的解决方案。