0

我必须编写一个函数,它接受一个值(数量),然后确定它所在的范围,并根据该范围确定价格。

所以如果传入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
4

0 回答 0