Schöner Programmieren Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 20.11.07 G. Bohlender (IANM UNI Karlsruhe) Schöner Programmieren 20.11.07 1 / 10
Übersicht 1 Das Einrücken 2 Die Kommentierung 3 Die Klammerung Klammerung in algebraischen und boolschen Ausdrücken 4 Namen G. Bohlender (IANM UNI Karlsruhe) Schöner Programmieren 20.11.07 2 / 10
Das Einrücken Sehr wichtig um die Ebenen der Gültigkeit von Variablen und eine Struktur im Programm zu erkennen. Um einzurücken am besten immer einen Tabulatorschritt verwenden. Eingerückt wird nach jedem Klasse- und Methodenkopf bis zur schließenden Klammer nach jedem Schleifenkopf (for, while, do-while) bis zur schließenden Klammer nach jeder Bedingung (if, switch) bis zur schließenden Klammer die schließende, geschweifte Klammer der Klasse, Methode, Schleife, usw. kommt immer auf die Höhe des dazu gehörenden Kopfes, bekommt also immer eine eigene Zeile nach der schließenden Klammer eine Zeile frei lassen, außer es kommen weitere schließende Klammern Elemente der gleichen Ebene (z.b. nacheinander folgende Bedingungen) müssen gleichmäßig auf der selben Höhe eingerückt sein G. Bohlender (IANM UNI Karlsruhe) Schöner Programmieren 20.11.07 3 / 10
Das Einrücken Beispiel public class Einruecken { double var1 = 0.0; int var2 = 2; public static double methode1 (double x) { double y = 0; for (int i = 0; i < var2; i++) { var1 = var2 * x; if (var1 == 4) { for (int k = 1; k<5; k++) { y = y * Math.sqrt(k); else { y = 1; return y; public static void main (String[] s) { System.out.println(methode1(2)); G. Bohlender (IANM UNI Karlsruhe) Schöner Programmieren 20.11.07 4 / 10
Die Kommentierung Niemand macht sie gerne, aber spätestens einen Monat nachdem man ein Programm geschrieben hat, wird man für jeden Kommentar dankbar sein. Natürlich muss die Kommentierung zur Komplexität des Programms in einem angemessenen Verhältnis stehen. Achtung am Anfang der Klasse Autor, Datum, evtl. zusätzlich benötigte Klassen und eine kurze Beschreibung der Klasse angeben über jeden Methodenkopf jeweils auch eine Kurzbeschreibung der Aufgabe der jeweiligen Methode Der Code innerhalb einer Methode kann meistens noch mal untergliedert werden (einfaches Bsp.: Variablen, Schleife, Bildschirmausgabe), was durch Kommentierung ebenfalls Übersicht gewinnt Schwierige und unübersichtliche Algorithmen unbedingt kommentieren! In der Kürze liegt die Würze! Lange, ausformulierte Kommentare sind kontraproduktiv und erfordern nur mehr Zeit. G. Bohlender (IANM UNI Karlsruhe) Schöner Programmieren 20.11.07 5 / 10
Beispiel // Autor: Gregor Huber // Datum: 25.05.2007 // Programm zur Demonstration des Kommentargebrauchs // Klasse KuerzeWuerze public class KuerzeWuerze { // Variablen public static double x = 2.3; boolean b = true; // Methode zur Bildschirmausgabe public static void textausgabe () { System.out.println("In der Kuerze liegt die Wuerze!"); //Mainmethode public static void main (String[] s) { for (int i = 0; i<10; i++) { System.out.print(textausgabe()) System.out.println("Ohne Kommentar"); // 10x Ausgabe G. Bohlender (IANM UNI Karlsruhe) Schöner Programmieren 20.11.07 6 / 10
Die Klammerung Sobald man sie setzen kann, sollte man das auch tun. Auch wenn man z.b. bei Schleifen mit nur einer Anweisung die geschweiften Klammern theoretisch weglassen darf, ist es sehr unschön und gefährlich diese weg zu lassen. Beim eventuellen erweitern des Programms werden oft weitere Anweisungen in Schleifen gebraucht. Sehr häufig wird dann das Hinzufügen der Klammern vergessen, was natürlich zu fatalen Fehlern führt. Also Immer Klammern setzen! Die öffnende geschweifte Klammer sollte man an das Ende des Kopfes der Klasse, Methode, usw. schreiben. Eine andere Möglichkeit ist es, diese Klammer in die nächste Zeile auf gleicher Höhe wie den Kopf zu schreiben. Dies verbessert die Lesbarkeit und den Schutz vor Fehlern aber nicht zusätzlich; es braucht aber eine weitere Zeile. G. Bohlender (IANM UNI Karlsruhe) Schöner Programmieren 20.11.07 7 / 10
Die Klammerung Beispiel // SCHLECHT for (int i = 0; i<5; i++) x = x + i; // GUT (1. Möglichkeit) for (int i = 0; i<5; i++) { x = x +1; // GUT (2. Möglichkeit) for (int i = 0; i<5; i++) { x = x +1; G. Bohlender (IANM UNI Karlsruhe) Schöner Programmieren 20.11.07 8 / 10
Klammerung in algebraischen und boolschen Ausdrücken Auch hier sind Klammern immer gerne gesehen. Man sollte lieber zu viel als zu wenig Klammern setzen, vor allem bei längeren boolschen Ausdrücken. Beispiel // SCHLECHT if ( x < 10 && y >= x x+y == 100) { z = x * y / 100.0 + x / y + x*x*y; // GUT if(( x < 10 ) && ( y >= x ) ( x+y == 100 )) { z = ((x * y) / 100.0) + (x / y) + (x*x*y); G. Bohlender (IANM UNI Karlsruhe) Schöner Programmieren 20.11.07 9 / 10
Gute Namen schlechte Namen Klassennamen beginnen mit Großbuchstaben, dann folgen Kleinbuchstaben, z.b. Person, Student, Kursteilnehmer Variablennamen und Methodennamen beginnen mit Kleinbuchstaben, z.b. name, semester, ausgeben() In beiden Fällen werden Wortanfänge im Inneren des Namens groß geschrieben, z.b. PhysikStudent, JavaKursteilnehmer, anzahlderaufgaben, klausurnote, bearbeiteaufgabe() Konstanten werden in lauter Großbuchstaben geschrieben und ggf. mit Unterstrich unterteilt, z.b. DIM, MIN_OELSTAND, MAX_DRUCK Namen sollten ihre Bedeutung beschreiben, wie z.b. die vorigen Namen; schlecht sind dagegen i.a. nichtssagende Namen wie a, b, c, i, x G. Bohlender (IANM UNI Karlsruhe) Schöner Programmieren 20.11.07 10 / 10