Non c'è niente di male nel primo stile ( stile K & R ) (purché sia indentato). È molto usato nei linguaggi con questo tipo di sintassi (C, Java, Perl).
È, per esempio, il Java Standard e abbastanza leggibile IMO (purché indentato correttamente). [ Dato che mql4 prende in prestito pesantemente dalla sintassi in stile C, penso che menzionare questi altri linguaggi sia rilevante ]
Dovrebbe essere indentato però:
if(a==b){
Dothis;
Dothis;
etc;
}
Il 2° esempio ( stile Allman ) è anche preferito da alcuni, ed è generalmente accettato per essere più leggibile (di nuovo con indentazione corretta)
if(a==b)
{
Dothis;
Dothis;
etc;
}
ma il metodo che sembri scartare è abbastanza popolare altrove (per ragioni di leggibilità)
Il tuo ultimo esempio non mi piace affatto.
Lo stile allman è anche più facile da identificare le parentesi mancanti, specialmente negli alberi complessi se no.
Lo stile delle staffe è una preferenza dei programmatori, non c'è davvero un metodo giusto o sbagliato Imo. Lo stile K&R è il migliore ;-). Perché occupare una riga in più per una parentesi graffa di apertura .... quello che mi interessa davvero è a quale if{statement} appartiene. Esempio quello che sembra migliore e più facile da capire.
if(.............................) { if(.............................) { if(.............................) { if(.............................) { if(.............................) { if(.............................) { if(.............................) { if(.............................) { if(.............................) { if(.............................) { } } } } } } } } } }
O questa versione:
if(.............................){ if(.............................){ if(.............................){ if(.............................){ if(.............................){ if(.............................){ if(.............................){ if(.............................){ if(.............................){ if(.............................){ } } } } } } } } } }
E ancora meglio.
if( !.............................) return if( !.............................) return if( !.............................) return if( !.............................) return if( !.............................) return if( !.............................) return if( !.............................) return if( !.............................) return if( !.............................) return if( !.............................) returnImo, l'ultima versione sembra più naturale di come scrivo nella vita reale. Riga per riga.
Io faccio così:
if(.............................) {if(.............................) {if(.............................) {if(.............................) {if(.............................) {if(.............................) {if(.............................) {if(.............................) {if(.............................) {if(.............................) }}}}}}}}}
Mi piace la discussione.
E che dire della preferenza nella codifica della dichiarazione else . Preferisco il primo esempio, anche se alcuni editor non possono piegare/svolgere tali blocchi. Il secondo è un compromesso. Il terzo è ancora più coerente, ma illeggibile.
if (cond) { command; } else if (cond) { command; } else { command; }
o
if (cond) { command; } else if (cond) { command; } else { command; }
o
if (cond) { command; } else { if (cond) { command; } else { command; } }
Non uso più molto else. C'è stato un problema in cui sono stato costretto ad usare else un po' di tempo fa (non ricordo il problema). Quando ho usato else, è andato qualcosa come questo.
if (cond) { command; } else if (cond) { command; } else { command; }
Ora però il mio primo insegnamento sulla codifica di qualcosa come sopra sarebbe.
if( cond ){ command; return; } if( cond ){ command; return; } command;
Sì, trasformerò un codice di tre righe in una funzione 8)))
Faccio se altro così
In una certa misura non importa, la cosa principale che conta è la coerenza dell'applicazione dello stile scelto... tutti noi abbiamo le nostre preferenze, naturalmente
Sono d'accordo con Raptor. Argomento su nulla. Mi sento molto più frustrato quando le persone postano il loro codice qui senza usare SRC. Come codificano il loro programma dipende da loro, a meno che non abbiano intenzione di chiedere aiuto.
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Accetti la politica del sito e le condizioni d’uso
Lo vedo spesso quando le persone postano il loro codice.
if(a==b){ Dothis; Dothis; etc; }
Ora, questo non è un problema quando si leggono brevi pezzi di codice di altre persone.
Ma quando c'è molto codice, può renderlo quasi impossibile da seguire.
Penserei che molti avrebbero difficoltà a trovare errori nel proprio codice.
Perché non questo?