in einem Fall mit Rückgabe.. und für Standard

Für "default:". Ist es rein OCD, oder gibt es einen wirklichen Grund, hier die Pause zu machen?

Meine OCD lässt mich beim Schreiben von Fallanweisungen "Break" hinzufügen, auch wenn sie nicht ausgeführt werden. Betrachten Sie das folgende Codebeispiel:

switch(option) {
    case 1:
        a = 1;
        b = 7;
        break;
    case 2:
        a = 2;
        b = 4;
        return (-1);
        break;
    default:
        a = -1;
        break;
}

Meine beiden Fragen sind:
Für "Fall 2:" brauche ich die Pause nicht wirklich, aber ist es trotzdem eine gute Idee, sie dort zu haben?

Antwort auf "in einem Fall mit Rückgabe.. und für Standard " 13 von antworten

Ich persönlich lege die Pausen nicht ein, aber es könnte helfen, wenn jemand anderes beschließt, die Rückkehr (-1) nach außerhalb des Schalters zu verschieben und vergisst, Pause hinzuzufügen.

Sie brauchen keine Pause, aber es schadet nicht, sie zu haben. Meiner Meinung nach lohnt es sich, Ihren Code strukturiert zu halten, ein paar fremde Aussagen.

Die Pause nach Ihrem Standardfall ist nur eine Frage der persönlichen Präferenz.

Eine Pause nach der Rückkehr zu machen, scheint mir fast widersprüchlich. Ich würde die Pause entfernen, nur um die Rückgabeanweisung wirklich herausstechen zu lassen.

Keine Pause tut nichts für dich, aber auch nicht schadet.

Persönlich lasse ich sie in der Regel aus, wenn ich eine Rückkehr habe - aber ich versuche auch, möglichst mehrere Rückgabepunkte in einer Funktion zu vermeiden.

Allerdings denke ich, dass die Pause im default: case is good - for one reason: If you were to leave it out, and somebody added a new case after default:, the behavior would be different if they "forget" to add in a break. Fall gut ist - aus einem Grund: Wenn Sie es weglassen würden, und jemand einen neuen Fall nach der Standardeinstellung hinzufügt: Das Verhalten wäre anders, wenn sie "vergessen", in einer Pause hinzuzufügen.

Ich bin damit einverstanden, dass ich eine Pause in einem letzten Standardfall habe, und bin nicht mit Pausen nach Rückkehr einverstanden. (Ein Kollege macht das und es tut mir weh.)

ich auch einrücken Schalter, um die Proliferation von Einzugsniveaus zu reduzieren. :) d.h.:

switch(option) {
case 1:
    a = 1;
    b = 7;
    break;
case 2:
    a = 2;
    b = 4;
    return -1;
default:
    a = -1;
    break;
}

(ich denke auch, dass es nicht angemessen ist, einen überflüssigen Stil durchzusetzen, der sie wie eine Macht erscheinen lässt.)

Ich würde die Pause einlegen, um zu zeigen, dass Sie nicht beabsichtigen, bis zum nächsten Fall durchzufallen.

Ich würde die Pause nach der Rückkehr als schlechte Form betrachten, Sie erhalten Warnungen über nicht erreichbaren Code auf einigen Compilern.

Die Pause auf Ihrem Standardfall ist völlig angemessen, Fall fall durch ist ein Werkzeug und sollte besonders gekennzeichnet werden, wenn verwendet.

Abgesehen davon, Brian Kernighan bietet eine good explanation on when you should (not) use break within a within a switch statement. statement. auf, wenn Sie (nicht) verwenden sollten break within a innerhalb einer switch statement. Aussage.

Bitte entschuldigen Sie mein begrenztes Wissen, aber was ist OCD?

Wie andere betont haben, ist es meist eine Frage des persönlichen Stils, nach einer Rückkehr oder im Standardfall eine Pause einzulegen.

Wenn ich keine bestimmten Stilregeln befolgen muss, bevorzuge ich so etwas:

    switch(foo){
         case 0:
             baz = 1;
             break;
         case 1:
             bar %= 2;
             return -1;
             /* NOTREACHED */
         case 2:
             bar = -1;
             return -2;
             /* NOTREACHED */
             break;
         default:
             break;
    }

Zwischen den Fällen 1 und 2 neige ich dazu, 2 vorzuziehen. Auch wenn der Kommentar NOTREACHED sagt, können Kommentare lügen (natürlich unbeabsichtigt), wenn sich der Code ändert. Ich mag den NOTREACHED-Kommentar, da er fussel erfüllen kann, dass Sie wissen, was Sie tun und dient als Erinnerung daran, dass Sie die Funktion vorzeitig verlassen. Die Argumentation, dass das Platzieren einer Pause nach der Rückgabe Fehler mildern wird, wenn die Rückgabe gelöscht wird, scheint mir fehlerhaft. Sie werden immer noch falsches Verhalten erhalten, unabhängig davon, ob Sie auf den nächsten Fall fallen oder den Schalter verlassen und weitermachen wie bisher.

Natürlich, wenn ich es vermeiden kann, würde ich nicht von einer Funktion innerhalb des Körpers eines Schalters zurückkehren.

Ich bevorzuge immer eine Pause in jedem Fall einschließlich der Standard und vermeiden Sie die Rückkehr überhaupt innerhalb Schalter 's. Für kurze Schalter mit nur 2-3 Fällen (einschließlich Standard) Rückgabe ist ok, aber nur, wenn alle Fall s tun es auf die gleiche Weise. 'sinnlose' Pause, die ich als sinnlos betrachte und nur machen ist es mehr Code zu lesen. Dasselbe gilt für leere Standardwerte, die einfach nur brechen, völlig sinnlos. Die Einfache, den Code zu lesen, ist meiner Meinung nach wichtiger als das, was passiert, wenn jemand zufällig dies oder das ändert.

In diesem genauen Beispiel ist es für beide Fragen persönliche Vorlieben. Im Allgemeinen gilt die Regel: Alles ohne Pause wird durchfallen. Das bedeutet (wie Pod sagte), es ist eine gute Idee, Pausen in Standardfällen zu setzen, falls sie nicht zuletzt sind. Dies bedeutet auch, wenn Ihr Fall eine Rückgabe enthält, dann ist eine folgende Pause in der Tat nicht notwendig.

Mir wird gesagt, dass in C, C++, Java und C, wenn Sie diese "Breaks" nicht setzen, der Programmcodefluss in die anderen "Fälle" fällt und die Anweisungen in ihnen ausführt, egal ob die Variable die Werte nicht den "Cases" zugewiesen hat.

Bezüglich der Bemerkung, dass andere die Pause im Standardfall verlassen, falls jemand später vorbeikommt und einen Fall hinzufügt: Wo ich arbeite, sagt der Codierungsstandard zu immer den Standard als letzten Fall; in unserer Situation ist also eine Unterbrechung dieses Falles einfach überflüssig. (Dies ist ein Fall, in dem ich voll und ganz mit dem Codierungsstandard des Unternehmens übereinstimme, denn da der Standardfall immer der letzte ist, weiß man immer, wo man ihn findet, auch in einer langen Switch-Anweisung.)

Was Pausen nach Rückgaben betrifft, neige ich dazu, die Unterbrechung wegzulassen, es sei denn, es gibt Ausführungspfade, die nicht zurückgegeben werden, da ich sie für redundant halte. (Meine Ausnahme ist, dass in den seltenen Fällen, in denen es mehrere Ausführungspfade in einem Fall gibt und ich nicht mit einem schnellen Scan des Codes sagen kann, ob sie alle zurückkehren, dann lasse ich die Pause in, nur um sicher zu sein.)