Mehere if Abfragen

Moin
Ich habe Deine Grundidee für drei Endschalter umgetzt. Der Sketch enthält ein Objekt mit dem Namen LIMITSWITCH. Dieses Objekt enthält die Information über den Eingangspin und den aktuellen Status. Die Stati der Engangspins werden in der loop() ermittelt und stehen dann, zur Verarbeitung mif IF´s usw., zur Verfügung.

//BLOCK COMMENT
// https://forum.arduino.cc/t/mehere-if-abfragen/896928
#define ProjectName "Mehere if Abfragen"
// CONSTANT DEFINITION
// you may need to change these constants to your hardware
const byte Input_[] {A0, A1, A2};
const byte Output_[] {2, 3, 4};
enum {One, Two, Three};
// VARIABLE DECLARATION
struct LIMITSWITCH {
  byte pin;
  bool state;
} limitSwitch [] {
  {Input_[One], 0},
  {Input_[Two], 0},
  {Input_[Three], 0},
};
// FUNCTIONS
void setup() {
  Serial.begin(9600);
  Serial.println(F("."));
  Serial.print(F("File   : ")), Serial.println(__FILE__);
  Serial.print(F("Date   : ")), Serial.println(__DATE__);
  Serial.print(F("Project: ")), Serial.println(ProjectName);
  pinMode (LED_BUILTIN, OUTPUT);
  for (auto Input : Input_) pinMode(Input, INPUT_PULLUP);
  for (auto Output : Output_) pinMode(Output, OUTPUT);
  // check outputs
  for (auto Output : Output_) digitalWrite(Output, HIGH);
  delay(1000);
  for (auto Output : Output_) digitalWrite(Output, LOW);
}
void loop () {
  unsigned long currentTime = millis();
  digitalWrite(LED_BUILTIN, (currentTime / 500) % 2);
  // read limitSwitches first
  static unsigned long millisScan;
  const unsigned long millisDuration {20};
  if (currentTime - millisScan >= millisDuration) {
    millisScan = currentTime;
    for (auto &limitSwitch_ : limitSwitch) {
      bool stateNew = !digitalRead(limitSwitch_.pin);
      if (limitSwitch_.state != stateNew) limitSwitch_.state = stateNew;
    }
  }
  //  ***** Mehere if Abfragen
  if (limitSwitch[One].state   && limitSwitch[Two].state)   digitalWrite(Output_[One],   true); else digitalWrite(Output_[One],  false);
  if (limitSwitch[Two].state   && limitSwitch[Three].state) digitalWrite(Output_[Two],   true); else digitalWrite(Output_[Two],  false);
  if (limitSwitch[Three].state && limitSwitch[One].state)   digitalWrite(Output_[Three], true); else digitalWrite(Output_[Three], false);
  //  ***************
}

Ich wünsche Dir einen geschmeidigen Tag und viel Spass beim Programmieren.