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