introductionToProgramming/week13/Gearbox.java
Daniel Bulant 21fe12aa34 format
2025-11-27 23:55:35 +01:00

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;
}
}