0

値 (数量) を受け取り、それが含まれる範囲を決定し、その範囲に基づいて価格を決定する関数を作成する必要がありました。

したがって、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
4

0 に答える 0