Oder für ganz Faule:
digitalRead(Alarmtaste) ? machWas() : machWasAnderes();
Aua!
Das ist sehr problematisch.
Der trinäre Operator ist ein Operator, keine Kontrollstruktur.
Kann auch keine solche Kontollstruktur ersetzen.
Wenn man das trotzdem versucht, landet man ganz schnell in der "C++ Sequence Point" Problematik.
Es mag in bestimmten Einzelfällen funktionieren, ist aber bei mir, in der Schublade BÖSE.
Ganz klar:
Der trinäre Operator hantiert mit Daten.
Das if() Statement bestimmt den Kontrollfluss.
Ein abweichen davon widerspricht dem Prinzip der geringsten Verwunderung.