introductionToProgramming/week13/Gearbox.java
2025-11-27 19:44:12 +01:00

17 lines
517 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 - newGear) != 1) throw new IllegalGearChangeException();
gear = newGear;
}
}