mirror of
https://github.com/danbulant/introductionToProgramming
synced 2026-05-19 04:18:32 +00:00
22 lines
552 B
Java
22 lines
552 B
Java
package week13;
|
|
|
|
public class Gearbox {
|
|
private int gear = 1;
|
|
|
|
public static class IllegalGearChangeException extends RuntimeException {
|
|
}
|
|
|
|
void changeGear(int newGear) {
|
|
if (newGear == gear)
|
|
return;
|
|
if (newGear != -1 && (newGear < 1 || newGear > 5))
|
|
throw new IllegalArgumentException();
|
|
// newGear is now either -1 or 1..=5
|
|
var gearToCheck = newGear;
|
|
if (gearToCheck == -1)
|
|
gearToCheck++;
|
|
if (Math.abs(gear - gearToCheck) != 1)
|
|
throw new IllegalGearChangeException();
|
|
gear = newGear;
|
|
}
|
|
}
|