Switch-Anweisung formatieren
Ich habe den Konflikt über das formatieren von switch-Anweisungen für eine Weile jetzt. Ich sehe drei praktikable Möglichkeiten, und zwar habe ich mit der ersten mehr als oft nicht (so Wie es die form, die ich am häufigsten sehe), finde ich die zweite und Dritte intuitiver werden.
Erste:
switch(x) {
case 1:
DoSomething();
break;
case 2:
DoSomething();
break;
}
Zweite:
switch(x) {
case 1: DoSomething();
break;
case 2: DoSomething();
break;
}
Dritte:
switch(x) {
case 1: DoSomething(); break;
case 2: DoSomething(); break;
}
Verstehe ich eine Menge von code-Stil wird bevorzugt, so werde ich meine offizielle Frage:
Gibt es etwas grundlegend falsch mit der Verwendung der zweiten oder Dritten Option, so lange es einheitlich ist mit dem code?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nicht - vorausgesetzt, Ihre Sprache, ermöglicht dieses format, es ist nichts "grundsätzlich" falsch mit ihm. Wie bei allen code-Formatierung, es ist rein eine persönliche oder team-Präferenz.
Gibt es gute Gründe für das erste format, wie:
case
und die Anweisung zu starten.break;
auf einer eigenen Zeile zu unterscheiden zwischen Sturz über die Fälle, etc)Dass gesagt wird, es ist nichts falsch mit jeder der drei Optionen.
Als pro Oracle Docs;
Die wichtige Sache hier ist
to be consistent
, wenn Sie Folgen ein format.Hoffe, das hilft.
case
sein Abstand nach vorne.IMHO, das problem ist, dass man nicht immer nur einmal-Anweisung pro Fall, und das ist das wahre problem - Sie erstellen eine Inkonsistenz. Manchmal muss man mehrere Anweisungen unten, manchmal nicht.
Wenn Sie einen Blick über eine große code-Basis, die zweite Art kann dazu führen, dass Sie denken, der Schalter bricht, ohne etwas zu tun, während der Dritte kann dazu führen, dass Sie denken, es ist einer der Fälle, wo die Pause ist absichtlich weggelassen.
Natürlich, beide verschwinden, sobald Sie einen genaueren Blick auf den code und die Abbildung es heraus und/oder benutzt, um die Inkonsistenz (und damit verwandelt es in eine Konsistenz in Ihrem Kopf), aber der ganze Sinn von coding styles/standards, so dass Sie nicht haben zu tun.
Ist es ein ähnliches Angebot mit "if (Bedingung) Anweisung;" vs "if (Bedingung) {Anweisung;}" - letzteres ist mehr generisch und erfordert somit weniger Mühe zu Lesen auf großen code-Basen, die ist, warum die meisten style-guides darauf bestehen.
So lange, wie Sie Folgen den standards der code-Basis, in der Sie arbeiten, es ist in Ordnung. Wenn Sie möchten, um zu definieren, Sie einen besseren Weg, Dinge zu tun, es hängt alles von Ihren eigenen Vorlieben.. Manche sind einfacher zu Lesen, für einige und einige andere, die lieber andere standards. Wenn das der Fall ist (die Definition neuer standards für ein neues Projekt), sollten Sie versuchen, mit den meisten gängigen Formaten.
Mit allen, sagte, wenn es nur 1 Zeile code im Schalter, dann gehe ich oft auf die 3. ein. Ich finde die Lesbarkeit wichtiger als die konsequente Nutzung von standards (wahrscheinlich, weil die konsequente Verwendung von standards soll dazu beitragen, Lesen).
Ich persönlich verwende diese in Sprachen/text-Editoren/IDEs, die nicht auto-format es auf die erste option, die Sie zur Verfügung gestellt.
Wie die meisten gesagt haben, es ist rein Wahl, aber die Konsistenz ist der Schlüssel.