値 (数量) を受け取り、それが含まれる範囲を決定し、その範囲に基づいて価格を決定する関数を作成する必要がありました。
したがって、1 ~ 10 が渡された場合、価格は $2 になり、11 ~ 20 が渡された場合、価格は $4 になります。などなど。また、これは e コマース サイトでチェックアウトの送料を決定するために使用されているため、かなり無制限にする必要がありました。
私の質問は、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