防止超出指定范围的值

Gra*_*der 0 java math max min

private int currentSpeed;
private static final int MAXIMUM_SPEED = 100;
private int heading;

int speedUp(int increaseBy) {

    currentSpeed += increaseBy;

    return currentSpeed;
}

int slowDown(int decreaseBy) {

    currentSpeed -= decreaseBy;

    return currentSpeed;
}
Run Code Online (Sandbox Code Playgroud)

如何防止值currentSpeed超出MAXIMUM_VALUEspeedUp方法中的变量,并且在slowDown不使用if语句的情况下从方法中降低0以下.我相信使用Math.min&Math.max 会工作,但我不确定如何实施.

Bat*_*eam 5

使用Math.maxMath.min如下:

int speedUp(int increaseBy) {
    currentSpeed = Math.min(currentSpeed + increaseBy,MAXIMUM_SPEED);
    return currentSpeed;
}

int slowDown(int decreaseBy) {
    currentSpeed = Math.max(currentSpeed - decreaseBy,0);
    return currentSpeed;
}
Run Code Online (Sandbox Code Playgroud)