Wohin mit den geschweiften Klammer?

Übersicht Sonstiges Smalltalk

Neue Antwort erstellen

 

nilfor

Betreff: Wohin mit den geschweiften Klammer?

BeitragFr, Mai 06, 2011 16:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo zusammen!

Ich habe mich schon immer gefragt, wo ich in meinen Programmen, z.B. bei einer if-Abfrage, die geschweifte Klammer setzen soll.
Ich persöhnlich setze sie in die nächste Zeile. Wenn ich mir aber andere Programme angucke, stehen sie hinter dem if.

Jetzt meine Frage: Gibt es eine Vereinbarung, wo die Klammer hin muss, oder ist das Geschmackssache?

nilfor

DaysShadow

BeitragFr, Mai 06, 2011 16:16
Antworten mit Zitat
Benutzer-Profile anzeigen
In Java steht sie meist in der Anfangszeile, bei C/C++ z.B. meine ich, dass sie meistens in der nächsten Zeile steht.
Das gilt allgemein für Funktionen, Klassen und Abfragen, also nicht nur für if.
Im Allgemeinen ist das aber auch nur eine Geschmacks/Konventionssache.

Ich persönlich schreibe sie immer in die nächste Zeile.
Blessed is the mind too small for doubt

Hummelpups

BeitragFr, Mai 06, 2011 16:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Also ich schreibs immer so

Code: [AUSKLAPPEN]
If(a==b){
   asd=1;
}
blucode - webdesign - Ressource - NetzwerkSim
BlitzBasic 2D - BlitzMax - MaxGUI - Monkey - BlitzPlus

M0rgenstern

BeitragFr, Mai 06, 2011 16:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Also, ich habe neulich gelesen, dass es wohl so festgelegt ist, wie Hummelpups geschrieben hat.

Ich persönlich finde das aber schwachsinnig, da solche Klammern (meine Meinung nach) zur Lesbarkeit beitragen sollten.
Und da finde ich ist es besser, wenn die öffnende Klammer in der gleichen Spalte steht wie die schließende Klammer, denn dann muss man nur in der gleichen Spalte nach unten schauen.

Lg, M0rgenstern

Lord Stweccys

BeitragFr, Mai 06, 2011 16:59
Antworten mit Zitat
Benutzer-Profile anzeigen
@Hummelpups: Dafür bin ich oft zu faul^^

Bei einzeiligen Bedingungen schreibe ich persönlich so:

Code: [AUSKLAPPEN]
if (a==b){asd=1;}


...während das schlauste wohl wäre, so zu schreiben:

Code: [AUSKLAPPEN]
if (a==b)
   asd==1;

Eingeproggt

BeitragFr, Mai 06, 2011 17:05
Antworten mit Zitat
Benutzer-Profile anzeigen
Is reine Geschmackssache, ich mache es ähnlich wie Hummelpups, aber mit Leerzeichen:
Code: [AUSKLAPPEN]
If (a==b) {
   asd=1;
}

Wobei ich eigentlich von Leerzeichen bei Operatoren nix halte, aber bei Kontrollstrukturen mach ich sie.

@Morgenstern:
Ich finde so sieht man auch sofort wo ein Block anfängt und wo er geschlossen wird aufgrund der Einrückungen. Man erspart sich eine Zeile und sieht sogar auch noch sofort, was das für ein Block ist (If, While,...)

mfG, Christoph.
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9
 

c64

BeitragFr, Mai 06, 2011 19:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Einfache Anweisung nach Bedingung (so mach ich es)
Code: [AUSKLAPPEN]

if(anything)dosomething;


Mehrfache Anweisung nach Bedingung / Oder es kann passieren, bzw. ich beabsichtige, das Mehrfachanweisungen eingefügt werden sollen. (so mach ich es)
Code: [AUSKLAPPEN]

if(anything)
{
  dosomething1;
  dosomething2;
  dosomethingN;
}


Wers mag!
Code: [AUSKLAPPEN]

if(anything){
  dosomething1;
  dosomething2;
  dosomethingN;
}


Ob es da eine Konvention gibt kann ich nicht sagen, auch wenn es Unprofessionell klingt,ganz einfach weil es mich nicht Interessiert!

Wenn ich in einer guten IDE die schliessende/öffnende Klammer "Markiere" muss ich nur in der Entspechenden "Spalte" nach der öfnenden/schliessenden schauen weil diese auch markiert wird, zudem wie vor mir angemerkt schon allein der Form halber sollte dies in einer "Spalte" stehen!

Sicher gibt es auch Argumente dagegen aber letzlich solange man nicht einer Konvention unterliegt sollte man das handeln wie man es für richtig Ansieht denn letzlich wird man sich sicher dabei etwas gedacht haben es so zu machen, wie bei jeder anderen Lösung auch.

mfg. C64
Betreten verboten! Kinder haften für ihre Eltern!

M0rgenstern

BeitragFr, Mai 06, 2011 21:51
Antworten mit Zitat
Benutzer-Profile anzeigen
c64 hat Folgendes geschrieben:

Sicher gibt es auch Argumente dagegen aber letzlich solange man nicht einer Konvention unterliegt sollte man das handeln wie man es für richtig Ansieht denn letzlich wird man sich sicher dabei etwas gedacht haben es so zu machen, wie bei jeder anderen Lösung auch.

mfg. C64


Genau so sehe ich das auch.
Im Laufe der Zeit entwickelt jeder seinen eigenen Programmierstil
Aber soweit ich weiß, gibt es die Konvention die öffnende Klammer mit in die if Zeile zu schreiben.

Lg, M0rgenstern

skey-z

BeitragFr, Mai 06, 2011 22:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Eingeproggt hat Folgendes geschrieben:
Is reine Geschmackssache, ich mache es ähnlich wie Hummelpups, aber mit Leerzeichen:
Code: [AUSKLAPPEN]
If (a==b) {
   asd=1;
}



sign!
Awards:
Coffee's Monatswettbewerb Feb. 08: 1. Platz
BAC#57: 2. Platz
Twitter

BlueM

BeitragFr, Mai 06, 2011 23:06
Antworten mit Zitat
Benutzer-Profile anzeigen
hmm, also ich finde das ist keine Sache des Geschmacks, sondern der Lesbarkeit. Wenn ich in C++ oder in Vala programmiere dann sieht das immer so aus :

Code: [AUSKLAPPEN]

for (int i=0; i<10; i++)
{
      Anweisung
}


Über sowas lässt sich natürlich streiten, aber ich versuche vorallem, wenn andere meinen Code lesen müssen das ganze so Übersichtlich wie möglich zu gestalten.
 

konstantin

BeitragFr, Mai 06, 2011 23:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Zu dem Thema gibt es ein sehr interessantes Dokument von Linus Torvalds bzgl. Linux.

http://lxr.linux.no/linux/Docu...odingStyle

hamZta

Administrator

BeitragSa, Mai 07, 2011 0:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich schließe mich BlueM an, man sieht einfach viel schneller wo ein Block anfängt und wo er aufhört.
Blog.

Thunder

BeitragSo, Mai 08, 2011 13:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich sehe absolut keinen Unterschied in der Lesbarkeit.
Daher verwende ich Hummelpups' Variante (und bei einzeiligen Ausdrücken überhaupt keine Klammern), einfach weil ich mir Zeichen/Zeilen spare.
Meine Sachen: https://bitbucket.org/chtisgit https://github.com/chtisgit

Neue Antwort erstellen


Übersicht Sonstiges Smalltalk

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group