我必须编写一个函数,它接受一个值(数量),然后确定它所在的范围,并根据该范围确定价格。
所以如果传入1-10,价格是2美元,如果是11-20,价格是4美元。等等等等等等。这必须是相当无限的,因为这是在电子商务网站上用来确定结帐运费的。
我的问题是,是否有更有效的方法来做到这一点,而不是循环到 10,000,以 10 为单位构建一个数组,然后循环遍历我制作的数组以确定传入的值的范围。
function getPrice(qty)
tempArray = array()
for i = 0 to 10000 step 10
addArrayItem tempArray,i
next
if qty > 9 then
for i = 0 to ubound(tempArray)
if cInt(qty) > tempArray(i) AND cInt(qty) <= tempArray(i+1) then
response.write("falls in range " & tempArray(i) + 1 & " through " & tempArray(i+1) & "<br>")
temp = left(tempArray(i+1),len(tempArray(i+1)) - 1)
rate = formatcurrency(cInt(temp * 2),2)
exit for
end if
next
elseif qty > 0 then
rate = "$2.00"
else
rate = "error"
end if
getPrice = rate
end function
sub addArrayItem(ByRef ar,ByVal count)
ub = uBound(ar)
reDim preserve ar(ub + 1)
ar(ub+1) = count
end sub