使用 puts 时不显示全局变量的值
Value of global variable not showing when using puts
我制作了一个程序,它接收每天的一系列股票价格,然后 returns 股票应该买入然后卖出的日期。我有一个全局变量,$negatives
显示买卖日。我想 return 这个全局变量作为我的 puts 语句的一部分。但是,目前没有任何显示。我没有看到我的 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
因为循环会自动退出。
最后,如果您希望函数 return $difference
您应该将 $difference
放在函数的最后一行。
你的代码有更多问题(好像你有一个额外的循环,你应该对多行块使用 do...end),但进入它们似乎更适合 Code Review Stack Exchange.
我制作了一个程序,它接收每天的一系列股票价格,然后 returns 股票应该买入然后卖出的日期。我有一个全局变量,$negatives
显示买卖日。我想 return 这个全局变量作为我的 puts 语句的一部分。但是,目前没有任何显示。我没有看到我的 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
因为循环会自动退出。
最后,如果您希望函数 return $difference
您应该将 $difference
放在函数的最后一行。
你的代码有更多问题(好像你有一个额外的循环,你应该对多行块使用 do...end),但进入它们似乎更适合 Code Review Stack Exchange.