Le parentesi graffe dovrebbero apparire sulla propria linea? [chiuso]

260

Le parentesi graffe dovrebbero essere sulla propria linea o no? Cosa ne pensi?

if (you.hasAnswer()) {
    you.postAnswer();
} else {
    you.doSomething();
}

o dovrebbe essere

if (you.hasAnswer())
{
    you.postAnswer();
}
else
{
    you.doSomething();
}

o anche

if (you.hasAnswer())
    you.postAnswer();
else
    you.doSomething();

Per favore sii costruttivo! Spiega perché, condividi esperienze, esegui il backup con fatti e riferimenti.

    
posta Tom Wijsman 22.09.2011 - 00:34
fonte

37 risposte

-1

Io uso;

if ($test) {
    //something
} else {
    //something else
}

Perché è così che phpcs (PHP Codesniffer) ti piace fare cose quando è in esecuzione con le sue impostazioni predefinite (che è lo standard Zend).

L'unica altra cosa da notare è lo spazio tra 'if' e '('

    
risposta data 02.11.2010 - 21:52
fonte
-1

Preferirei il 2 ° e il 3 ° metodo.

Il primo metodo sono di solito di programmatori veterani che imparano le vecchie cose e si abituano ad esso. Trovo molto difficile leggere i codici l'ultima volta. Fortunatamente VS2010, è più facile da leggere ma cosa succede se apri altri editor? Ci saranno problemi.

Il secondo metodo è definito in modo più chiaro e più facile per i tuoi occhi. Non avrai molte difficoltà a cercare le parentesi graffe finali rispetto alla prima.

Il 3 ° metodo farà risparmiare più spazio e definirà chiaramente la sua sola lettura di una riga di istruzioni. Non sono d'accordo con le persone sul fatto che il programmatore abbia preso il sopravvento e commesso un errore. È stato un errore spensierato se si sono dimenticati di questo.

    
risposta data 03.11.2010 - 05:19
fonte
-1

Il primo metodo per 3 semplici motivi.

  1. È il modo corretto in C, UNIX è stato scritto in quello stile e io uso C.
  2. È più leggibile. } else {è una forma molto riconoscibile e lega bene i blocchi correlati.
  3. Devo occuparmi del codice che assomiglia molto a:

    if ( a < b )
    {
       a *= 2;
    }
    //else if ( ( b + 100) < a)     rev 10103
    else
    /* This adds b to a and stores the result in a */
    {
       a -= b; // rev 10129
    }
    #if 0
    else
    #endif
    {
        a--;
    }
    
risposta data 03.11.2010 - 10:47
fonte
-1

Trovo la prima opzione più leggibile. Non fare mai il terzo in quanto può portare a bug.

Come per gli argomenti superiori a underscored_variable_names e camelCase , la scelta effettiva non ha molta importanza .

Qualunque sia la squadra o la convenzione del linguaggio di programmazione, segui lo stream e segui quella convenzione .

Se differisci dalla convenzione, renderà la lettura del codice un po 'più difficile, dato che il tuo cervello nota la differenza invece di scremare facilmente.

    
risposta data 17.01.2011 - 08:29
fonte
-2

Il motivo principale per utilizzare il secondo metodo è che mantiene if e else nella stessa scheda, migliorando notevolmente la leggibilità.

    
risposta data 01.11.2010 - 20:57
fonte
-2

Io di solito uso il primo stile solo per ottenere più codice in una vista a schermo. Non uso mai l'ultima cosa è facile dimenticare di aggiungere {} se aggiungi una seconda riga di codice.

Anche questi hanno nomi 'comuni' il primo con il {} sulla stessa linea è lo stile di K & R e il secondo con il {} sulla riga successiva è stile Allman o BDS. ( stile rientri di Wikipedia )

    
risposta data 02.11.2010 - 23:56
fonte
-3

Sono sempre andato per una via di mezzo:

if ( i<= 10){
    printf("hello");
    i++;
}
else
    printf("goodbye");

Trovo il modo più semplice per riconoscere i blocchi di codice a colpo d'occhio senza occupare troppo spazio o far sì che il {} sporga.

    
risposta data 30.10.2010 - 07:22
fonte

Leggi altre domande sui tag