Unindented elses

2

Ho scritto codice da circa 18 anni. Ultimamente, ho preso l'abitudine di non indentare elses e quando guardo il codice mi preoccupa un po 'più che qualcuno che potrebbe guardare il codice potrebbe piangere.

Lo snippet seguente spiega la necessità dello stile

if(condition) {
   ...
} //1 
if(condition) { // Don't want this second block to be entered unnecessarily
   ...
}

Quindi metto un altro dove il commento etichettato 1 è

if(condition) {
   ...
} else
if(condition) { 
   ...
}

Mettere un altro lì aiuta a mantenere la leggibilità, specialmente quando si dimentica di metterne uno lì, non necessariamente rompere nulla. Ciò di cui sono a disagio è che non segue strettamente le convenzioni (in questo caso Sun) in due modi diversi: 1) indentazione corretta 2) avendo una parentesi aperta dopo il resto

Immagino che quello che sto cercando di fare sia evitare di avere rientri massicci che facciano davvero la differenza in blocchi che hanno molte condizioni - 5 o più anche se solo tre sono mostrati di seguito.

if(condition) {
   ...
} else {
   if(condition) { 
      ...
   } else {
      if(condition) { 
         ...
      } else {
         ...
      }
   }
}

Trovo molto più ordinato avere il resto senza indugi e senza un tutore che segua. Quali sono i tuoi pensieri?

    
posta sfk 21.02.2013 - 12:35
fonte

1 risposta

15

Solitamente lo vedo risolto non inserendo if all'interno di un blocco di codice se è l'unica istruzione nella parte else e che pone if sulla stessa riga.

Questo emula efficacemente elseif o elif di altre lingue.

if (condition1) {
  ...
} else if (condition2) {
  ...
} else {
  ...
}

In questo modo non ci sono indentazioni inutili e ogni blocco di codice ha le sue parentesi, come dovrebbe essere.

Inoltre non ho mai avuto nessuno strumento di qualità del codice per questo, quindi presumo sia ampiamente accettato.

    
risposta data 21.02.2013 - 12:42
fonte

Leggi altre domande sui tag