Realizar una accion u otra con if o while?

Hola a todos, estoy tomando datos con 4 sensores de color al mismo tiempo y lo que quiero es que cuando los 4 sensores me lean el mismo color se active una salida, y cuando al menos uno o mas no corresponda al mismo color que los otros sensores este leyendo me active otra salida.

Lo que quiero que no pase es que con la luz ambiente o con solo colocar un color en un sensor y aun que no haya puesto los otros 3 colores me active como si no estuviera leyendo los 4 mismos colores

o saria un "switch case"

si con cualquiera, lo que necesito es poder realizar eso que expongo

Si posteas el sketch que estas usando y algun esquema ,modelo de sensor,etc,etc,sera mas facil ayudarte.

algo como esto entonces es lo que quiero

suponiendo el color verde me marca 300, entonces:

si sensor1=300 sensor2=300 sensor3=300 sensor4=300 prender una salida digital en la que vaya un led verde

y si no cumple con eso es decir que alguno sea diferente que prenda otra salida diferente siempre y cuando ya este haciendo lectura de algún color, lo que no quiero que suceda es que como al inicio sin haber colocado el color obviamente los sensores van a tener valores diferentes entonces me prenderia el led diciendome que son diferentes, solo quiero que eso pase cuando ya le ponga los colores en lectura

no lo hagas para 300 exactos porque jamas vas a lograr la misma respuesta en 4 sensores.
Usa algo como esto

puedes para cada color buscar esta situacion

if (sensor1 > 250 && sensor1 < 350)

o
if (abs(sensor1 - 300) < 50)

el segundo caso es el que uso yo aunque ambos son lo mismo.

repite esta situación para los 4 sensores.

switch…case sirve para controlar el flujo del programa sometiendo una variable de control a ciertas condiciones. En particular, switch…case permite hacer una serie de comparaciones sin necesidad de ifs anidados.
esta hecho a la rapid puede contener errores, lo escribi desde el movil

byte valor_lectura;
unsigned long sensor1;
unsigned long sensor2;
unsigned long sensor3;

unsigned long limite1;
unsigned long limite2;
unsigned long limite3;
byte byte_I,byte_D,byte_E;

void loop(){
if(sensor1=limite1) { byte_I=1;
  else byte_I=0;
}

if(sensor2=limite2) { byte_d=1; // limite2 puede ser cambiado por algun valor numerico a comparar
  else byte_d=0;
}
if(sensor3=limite3) { byte_e=1; // limite2 puede ser cambiado por algun valor numerico a comparar
  else byte_e=0;
}
valor_lectura=byte_I+byte_D+byte_E;
  
  byte_I=0;
  byte_D=0;
  byte_E=0;
 
  

switch(valor_lectura){
    case 1: 
       //1 se ejecuta esto
    break;
    case 2: 
       //2 se ejecuta esto
    break;
case 3: 
       //3 se ejecuta esto
    break;

    //pueden haber tantos case como se necesite.
    default: 
       //si nada coincide se ejecuta esto
       //es opcional  
    break;
}
}

tabla de equivalencia

I-D-E
0-0-0 0°
0-0-1 1°
0-1-0 2°
0-1-1 3°
1-0-0 4°
1-0-1 5°
1-1-0 6°
1-1-1 7°

No hace falta ningun switch case. solo una comparación de que 4 valores de sensores esten dentro de cierto rango como lo he expuesto y tmb lo ha explicado ArduMyth