我制作了一个程序,每天收集一系列股票价格,然后返回股票应该被买入然后卖出的日子。我有一个全局变量,$negatives
显示买入和卖出日。我想将此全局变量作为我的puts语句的一部分返回。但是,目前没有任何东西出现。我没有看到我的看跌声明。知道发生了什么事吗?
def stock_prices array
$largest_difference = 0
array.each_with_index {|value, index|
if index == array.size - 1
exit
end
array.each {|i|
$difference = value - i
if ($difference <= $largest_difference) && (index < array.rindex(i))
$negatives = [index, array.rindex(i)]
$largest_difference = $difference
end
}
}
puts "The stock should be bought and sold at #{$negatives}, respectively"
end
puts stock_prices([10,12,5,3,20,1,9,20])
答案 0 :(得分:2)
您的代码存在一些问题。首先,exit
退出整个程序。你真正想要的是break
。除此之外,您甚至不需要检查,因此您应该删除
if index == array.size - 1
exit
end
由于循环将自动退出。
最后,如果您希望函数返回$difference
,则应将$difference
放在函数的最后一行。
您的代码存在更多问题(似乎您有一个额外的循环,并且您应该使用do ... end来表示多行块),但进入它们似乎更适合Code Review Stack Exchange。