我不斷收到以下錯誤。經過一些研究後,我認爲這是因爲我的數組訪問錯誤(錯誤地)是由於有一個NIL值。初學者數組迭代和錯誤代碼解釋
my_solution.rb:24:in `count_between': undefined method `>=' for nil:NilClass
(NoMethodError) from my_solution.rb:35:in `<main>'
我是新來讀的錯誤代碼,所以也許這就是我出錯的地方。但是,由於錯誤提示,它在線上獲得了隧道視覺。然而我無法修復它,所以無奈之下,我隨即將(< =)行隨機更改爲(<)。這固定了它。
這是爲什麼解決它?我唯一的猜測是最初使用(< =)使它迭代「太遠」,從而以某種方式返回NIL?
錯誤代碼爲什麼說它是第24行的元素導致問題,當它實際上是第23行的元素?我是新手,並且試圖通過錯誤代碼暗示,所以這是一個奇怪的經歷。
感謝您的任何指導。
# count_between is a method with three arguments:
# 1. An array of integers
# 2. An integer lower bound
# 3. An integer upper bound
#
# It returns the number of integers in the array between the lower and upper
# bounds,
# including (potentially) those bounds.
#
# If +array+ is empty the method should return 0
# Your Solution Below:
def count_between(list_of_integers, lower_bound, upper_bound)
if list_of_integers.empty?
return 0
else
count = 0
index = 0
##line 23##
while index <= list_of_integers.length
##line24##
if list_of_integers[index] >= lower_bound &&
list_of_integers[index] <= upper_bound
count += 1
index += 1
else
index += 1
end
end
return count
end
end
puts count_between([1,2,3], 0, 100)
[1,2,3] .length => 3但是數組索引從0開始,所以要遍歷一個數組,您可以這樣做,而我
nikkypx