else if

Hola, muy buenas a todos.

Estoy intentando crear un programa que dependiendo del password que le metas haga una cosa u otras tres. Lo he hecho con un if y 3 else if, pero veo que solo funcionan los dos primeros passwords, así que entiendo que solo puede haber un else if. Aquí está la parte del código que chequea el password.

void checkPassword(){
  
  data_count = 0;

   if (password1.evaluate()){ //esta funciona
    Serial.println("Pass1");    
    digitalWrite(ledRojo, LOW);

    }

   else if (password2.evaluate()){ //esta funciona
    Serial.println("Pass2");
    digitalWrite(ledVerde, LOW);
    }

   else if (password3.evaluate()){ //esta no funciona
    Serial.println("Pass3");
    digitalWrite(ledAzul, LOW);
    }

   else if (password4.evaluate()){ //esta no funciona
    Serial.println("Pass4");
    digitalWrite(ledAmarillo, LOW);
    }
 
 else{
    Serial.println("Wrong");
    resetPassword();
  }

Se me ocurre cambiarlo por un switch case, pero no sé si es correcto y no sé cómo plantearlo con el evaluate.

Espero que me podáis ayudar, estoy empezando en este mundillo y soy un poco novato.

Muchas gracias.

No puedes cambiarlo por switch.

Es raro que te funcionen los dos primeros casos y no los siguientes porque lucen bien.

Puedes poner todo el código para probarlo por nuestra cuenta?

Claro pero te das cuenta que sin poner todo el código nosotros solo perdemos el tiempo?

Tenlo presente para la próxima consulta okay!!