使用put时,全局变量的值不显示



我编写了一个程序,它接收每天的股票价格数组,然后返回股票应该买进和卖出的日期。我有一个全局变量,$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])

您的代码有几处错误。首先,exit退出整个程序。你真正要找的是break。除此之外,你甚至不需要那个检查,所以你应该删除

if index == array.size - 1
    exit
end

作为循环将自动退出。

最后,如果你想让函数返回$difference,你应该把$difference放在函数的最后一行。

你的代码有更多的问题(似乎你有一个额外的循环,你应该使用do…结束多行块),但进入它们似乎更适合代码审查堆栈交换。

相关内容

  • 没有找到相关文章

最新更新