Doing maths on HIGH and LOW returns from DigitalRead

As you see, you only need two pins :wink:

But yes, but it's a bit ugly.

byte mode = digitalRead(SwitchPins[0]) || digitalRead(SwitchPins[1]) << 1;

With SwitchPins the pins of the switch. But because they are similar, arrays, always arrays :wink: