Warum ist so viel Code so?

 

Ich sehe das oft, wenn Leute ihren Code posten.

if(a==b){
Dothis;
Dothis;
etc;
}

Das ist kein Problem, wenn man kurze Teile des Codes anderer Leute liest.

Aber wenn es sich um viel Code handelt, kann es fast unmöglich sein, ihm zu folgen.

Ich würde denken, dass es vielen schwer fällt, Fehler in ihrem eigenen Code zu finden.

Warum nicht das?

if(a==b)
{
Dothis
Dothis
etc
}

//Or

if(a==b)
  {
  Dothis
  Dothis
  etc
  }

 

Gegen die frühere Form ( K & R-Stil ) ist nichts einzuwenden (solange sie eingerückt ist). Sie wird häufig in Sprachen mit dieser Art von Syntax verwendet (C, Java, Perl).

Es ist z.B. der Java Standard und IMO recht lesbar (solange es richtig eingerückt ist). [ Da mql4 sich stark an die C-Syntax anlehnt, denke ich, dass die Erwähnung dieser anderen Sprachen relevant ist ]

Es sollte jedoch eingerückt werden:


if(a==b){
   Dothis;
   Dothis;
   etc;
}


Das 2. Beispiel ( Allman-Stil ) wird ebenfalls von einigen bevorzugt und gilt allgemein als besser lesbar (wiederum mit korrekter Einrückung).


if(a==b)
{
   Dothis;
   Dothis;
   etc;
}

aber die Methode, die Sie anscheinend ablehnen, ist anderswo recht beliebt (aus Gründen der Lesbarkeit)

Ihr letztes Beispiel gefällt mir überhaupt nicht.

 

allman-Stil ist es auch einfacher, fehlende Klammern zu erkennen, insbesondere bei komplexen Bäumen.

 

Der Stil der Klammern ist eine Vorliebe des Programmierers, es gibt imo keine richtige oder falsche Methode. Der K&R-Stil ist der beste ;-). Warum eine zusätzliche Zeile für eine öffnende geschweifte Klammer .... Was mich wirklich interessiert ist, zu welcher if{Anweisung} sie gehört. Zum Beispiel was besser aussieht und leichter zu verstehen ist.

if(.............................)
    {
    if(.............................)
        {
        if(.............................)
            {
            if(.............................)
                {
                if(.............................)
                    {
                    if(.............................)
                        {
                        if(.............................)
                            {
                            if(.............................)
                                {
                                if(.............................)
                                    {
                                    if(.............................)
                                        {
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }

Oder diese Version:

if(.............................){
    if(.............................){
        if(.............................){
            if(.............................){
                if(.............................){
                    if(.............................){
                        if(.............................){
                            if(.............................){
                                if(.............................){
                                    if(.............................){
}   }   }   }   }   }   }   }   }   }

Und noch besser.

if( !.............................) return
if( !.............................) return
if( !.............................) return
if( !.............................) return
if( !.............................) return
if( !.............................) return
if( !.............................) return
if( !.............................) return
if( !.............................) return
if( !.............................) return
Imo, die letzte Version fühlt sich natürlicher an, als wenn ich im wirklichen Leben schreibe. Zeile für Zeile.
 

Ich mache das so:

if(.............................)
{if(.............................)
 {if(.............................)
  {if(.............................)
   {if(.............................)
    {if(.............................)
     {if(.............................)
      {if(.............................)
       {if(.............................)
        {if(.............................)
}}}}}}}}}
 

Mir gefällt die Diskussion.

Und was ist mit der Präferenz bei der Codierung der else-Anweisung . Ich bevorzuge das erste Beispiel, obwohl einige Editoren solche Blöcke nicht ein- und ausklappen können. Das zweite Beispiel ist ein Kompromiss. Das dritte Beispiel ist noch konsistenter, aber unleserlich.

if (cond) {
   command;
} else if (cond) {
   command;
} else {
   command;
}

oder

if (cond) {
   command;
}
else if (cond) {
   command;
} 
else {
   command;
}

oder

if (cond) {
   command;
} 
else {
   if (cond) {
      command;
   }   
   else {
      command;
   }  
}
 
Bis zu einem gewissen Grad spielt das keine Rolle, die Hauptsache ist, dass der gewählte Stil konsequent angewendet wird ... natürlich hat jeder seine eigenen Vorlieben.
 

Ich benutze else nicht mehr oft. Es gab ein Problem, bei dem ich vor einiger Zeit gezwungen war, else zu benutzen (ich kann mich nicht mehr an das Problem erinnern). Wenn ich else verwendet habe, ging es ungefähr so.

if (cond) { command; } else 
if (cond) { command; } else {
   command;
}

Nun aber meine erste gelehrt auf die Codierung etwas wie oben wäre.

if( cond ){ command; return; }
if( cond ){ command; return; }
command;

Ja, ich werde einen dreizeiligen Code in eine Funktion verwandeln 8)))

 
SDC:

ich mache wenn sonst so

Persönlich finde ich das so klar wie Schlamm
 
RaptorUK: Ich persönlich finde das so klar wie Schlamm.
Es tut mir einfach in den Augen weh :{
 
RaptorUK:
Bis zu einem gewissen Grad spielt das keine Rolle, die Hauptsache ist, dass der gewählte Stil konsequent angewendet wird ... wir alle haben natürlich unsere eigenen Vorlieben

Stimme mit Raptor überein. Thema über nichts. Ich bin viel mehr frustriert, wenn Leute ihren Code hier posten, ohne SRC zu verwenden. Wie sie ihr Programm codieren, ist ihre Sache, es sei denn, sie wollen um Hilfe bitten.
Grund der Beschwerde: