Corona SDK Pro Tip of the Day #31
Limiting numbers

One of the most used addition to math library is a math.clamp() function, which forces a number to be within specific boundaries.

function math.clamp(value, low, high)  
    if low and value <= low then
        return low
    elseif high and value >= high then
        return high
    end
    return value
end  

This function accepts three arguments - number value, low limit and high limit. And it returns a number, which is guranteed to be within these boundaries.

It is good to use it for validation of user input, or to limit player's character movement speed, a color, money and etc. Basically you use it to make sure that a value is within a valid range.

If only one limit (low or high) is provided, then only it is going to be checked.

local actualSpeed = math.clamp(calculatedSpeed, 0, 200)

local temperature = math.clamp(temperature, -270)

player.x = math.clamp(player.x, 0, map.width)

cannon.rotation = math.clamp(cannon.rotation, -90, 90)

local age = math.clamp(age, 1, 120)

-- Six has higher probability than any other number
local luckyDice = math.clamp(math.random(1, 10), nil, 6)  

Indie Game Developer