mirror of
https://github.com/danbulant/introductionToProgramming
synced 2026-05-19 04:18:32 +00:00
17 lines
517 B
Java
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;
|
|
}
|
|
}
|