-1

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

我使用了一系列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

让我知道您需要该程序的其余部分。

4

2 回答 2

2

你可以做类似的事情

if data && data[1] != nil

它将data在尝试访问data[1]元素之前检查是否存在

于 2013-10-10T21:10:32.963 回答
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

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

于 2013-10-10T21:10:36.730 回答