Molteplici condizioni e comparazioni in un unica funzione

Salve a tutti,

cè un dubbio che vorrei togliermi, purtroppo non ho l’Arduino con me e non posso testarlo.
E nemmeno un compiler in C.

È possibile immettere piu tipi differenti di valori e controlli in una condizione ?

Ecco un esempio

**If (valore > 10 || luce == “1” && spegni ==”0”) **
{ ecc…}

Secondo me dovrebbe funzionare…

Saluti
Remo

Certo. Funziona.
E' richiesto solo che nei singoli test (nel tuo esempio 3) i due elementi del confronto siano dello stesso tipo.
Nell'esempio però un errore c'e'. "0" e "1" messi così sono stringhe (vettori di char) di 1 solo elemento.
Devi invece scrivere usando apice singolo (che indica un singolo carattere costante):

If (valore > 10 || luce == '1' && spegni =='0')

Grazie tante

un saluto
Remo

Attento solo a come sono concatenati tra loro i vari test.

Il tuo if è:
se valore > 10 OPPURE luce == ‘1’ E spegni == ‘0’

Messo così si potrebbe intendere come
se (valore > 10 OPPURE luce == ‘1’) E spegni == ‘0’

ma anche come

se valore > 10 OPPURE (luce == ‘1’ E spegni == ‘0’)

Cerca quindi di non far decidere al compilatore in base alla priorità degli operandi ma metti tu le parentesi dove vuoi separare le varie condizioni.

Per una maggiore velocità del codice però conviene suddividere l’IF.
Con questo

If (valore > 10 || luce == '1' && spegni =='0')

vengono controllate 3 condizioni
Invece in questo modo

If (spegni =='0')
   If (valore > 10 || luce == '1')
   { ... }

viene controllato il primo valore, se non corrisponde salta tutto, se corrisponde esegue il secondo controllo.