0
Ruby noob在这里,我有一个真气问题。红宝石跳过一段脚本
我的脚本中的某些东西正在让Ruby跳过它的一部分。
#Main_block_begins_here
if __FILE__ == $0
#Open_the_file_with_values_and_weights
File.open(getFileName, 'r') do |f|
#Intial_data...
$totalNumber=f.gets.chomp!.to_i
$totalCapacity=f.gets.chomp!.to_i
$currentItemWeight=0
$currentItemValue=0
$spaceLeft=0
$spaceLeft=$totalCapacity
$takenWeight=0
$takenValue=0
#Make_a_heap_for_the_data
$prioQ = Heap.new do
#reads_values,_computes_them,_and_enqueues_them
until i==$totalNumber
total=0
value=f.gets.chomp!.to_i
weight=f.gets.chomp!.to_i
total=value/weight
puts "#{total}=t, #{value}=v, #{weight}=w. Correct?"
check=gets.chomp!
it=Obj.new(total, value, weight) do
prioQ.enqueue(it)
end
i+=1
end
end
#dequeueIt
puts "total weight taken was #{$takenWeight} and total value taken was #{$takenValue}."
end
end
的注释行#dequeueIt早在一个方法,当我让运行,它给了我原本应在从文本文件阅读零所有值的无限循环。
until行中的puts行和check声明行用于调试目的,当然它们从不打印出来。
注释掉了,当我运行程序时,它只是打印出最后一行,就好像直到循环没有运行。如果需要更多的上下文代码,请让我知道,我会加以解决。
我的头发开始掉落这个,所以任何帮助表示赞赏!
编辑::是的,它应该是我== $ totalnumber。我在我的代码中修复了它,但它仍然不执行该循环内的脚本。
'我= $ totalNumber' - 不应该是'=='吗? – matt 2014-09-05 15:06:27
是的,没错。仍然不能解决问题,虽然... – 2014-09-05 15:21:52
你几乎肯定不希望你的变量以'$'开头。 '$'使变量全局变量,这最终会让你伤心。例如,'totalNumber'而不是'$ totalNumber'。 – 2014-09-05 15:22:22