Consiglio su come e' meglio scrivere un programma

ciao a tutti e finora grazie per rispondere sempre alle mie domande ..... avevo un'altro quesito da dirvi, PREMETTO sto imparando piano piano a programmare arduino

quando ho da compiere delle azioni in base a varie condizioni ad esempio 4 5 o piu' condizioni... e' corretto scrivere nel seguente modo? eventualmente come sarebbe piu ' giusto scrivere?

if(val==0 && valt==1)
if(var==0 && rar==1)
if(tat==1) {

digitalWrite........ecc}

else{
...}

Yes, your method works.

But you could also use

if(val==0 && valt==1  &&
   var==0 && rar==1  &&
   tat==1)  {

digitalWrite........ecc}

else{
...}

Si è giusto, si chiamano if annidati o in cascata (alcuni prof preferiscono dire l’uno o l’altro :smiley: ) però se in futuro dovrai verificare solo una variabile allora usa lo switch in questo modo:

switch(variabile){
  case ==0: digital..... ; break;
  case !=0: digit...... ; break;
  case ==5: ...... ; break;
  default: ....... ; break;  // questa la metti se deve fare qualcosa in caso nessuna condizione sia verificata
}

Se mi ricordo bene vengono elaborate le condizioni da sinistra a destra. Qunado una condizione é vera non viene continuato ma saltato al codice da eseguire quando é vero. Questo comporta che é meglio mettere a sinistra le condizioni che per maggior parte ei casi sono veri. Velocizza un pochettino il codice.

Inoltre non é necessario controllare se una variabile é uno o zero ma basta mettere la variabile.
if(a==1) é uguale a if(a) e if(a==0) uguale a if(!a). Ogni valore diffferente da zero viene interpretato come vero.

esiste anche una forma corta ?:

Ciao Uwe

Ma infatti, if(a == 1) lo si usa le prime volte per la leggibilità del codice, poi si va di if(a) o if(!a). Nel caso poi i valori siano numerosi, si usa il costrutto case:

Lo è pùi elegante e più leggibile ma costringe il processore a verificare tutte le condizioni, l’ è forse meno leggibile ma ha il vantaggio di essere nidificato e il primo esclude altre verifiche inutili se la prima non è soddisfatta facendo risparmiare tempo CPU, quando la velocità di esecuzione è di primaria importanza è meglio non mettere sotto lo stesso tutte le verifiche ma dividerle in base alla priorità o importanza, dove la prima esclude le altre, la seconda esclude la terza e cosi via.