我写了一段 Ruby 代码来获取数组中的最大值和最小值。该代码正确地打印出了最大值(8),但未打印出最小值(2)。请告诉我我的代码哪里出了问题。
class MaxMinArray
def MaxMinMethod()
array = [4,2,8,3,5]
maxNo = array[0]
minNo = array[0]
arrayLength = array.length
for i in 1..arrayLength
if array[i].to_i > maxNo
maxNo = array[i]
end
if array[i].to_i < minNo
minNo = array[i]
end
end
puts "Maximum no. in the given array: " + maxNo.to_s
puts "Minimum no. in the given array: " + minNo.to_s
end
end
MaxiMinArrayObj = MaxMinArray.new
MaxiMinArrayObj.MaxMinMethod()
MaxMinMethod
应该改为max_min_method
。另外,显然这是一个方法,所以可以简单地称其为max_min
。但是,正如其他人提到的,Ruby已经实现了minmax
,因此不必自己编写,可以利用预先编写好的方法。 - the Tin Manif array[i].to_i > maxNo
和if array[i].to_i < minNo
中您使用了整数转换。在maxNo = array[i]
和minNo = array[i]
中,您没有使用它(to_i
)。这种错误可能很难找到。我会写成这样:for i in 1...array.length; candidate = array[i].to_i; if candidate > maxNo; # 其余的代码
. Sawa谈到了类似的事情:https://dev59.com/SYDba4cB1Zd3GeqPGqLA#24216271 - Darek Nędza