Programmieren Tutorium 12

Schleifen und JavaDoc

Gliederung

  • Übungsblatt 2/B Review
  • Schleifen
  • Neue Keywords
  • JavaDoc

Übungsblatt 2/B Review

Ø 5 Punkte

Musterlösung

Allgemeines

  • EINRÜCKUNG! Einrückung, verdammte Scheiße!
  • Namenskonventionen
    • Variablen und Attribute im lowerCamelCase
    • Klassen und Enums im UpperCamelCase
    • Enum-Werte in CAPS
  • Objekte und static
  • Aufgabenstellung lesen und früh genug anfangen!

B.1 - Datenmodell

  • Leere Einträge werden mittels null Referenz dargestellt
  • Extra Konstruktor für leeren Eintag ist Bad Practice
  • enum ist dafür da, nur gültige Werte annehmen zu können
  • Lokale Variablen zum Testen benutzen, keine Attribute!

B.2 - continue

// wrong
for (int i = 0; i < x; i++) {
    if (something == null) {
        continue;
    }
    // Code goes here
}

// right
for (int i = 0; i < x; i++) {
    if (something != null) {
        // Code goes here
    }
}
  • continue vermeiden wo es nur geht
  • Sah bei mehreren verdächtig ähnlich aus

B.2.2 - Frauenquote

// wrong
double getWomensQuota() {
    // calculation goes here
    return 100.0 * femaleEntries / 5.0;
}

// right
double getWomensQuota() {
    // calculation goes here
    return 100.0 * femaleEntries / totalEntries;
}
  • Leere Einträge berücksichtigen

Schleifen

  • while
  • do-while
  • for

while

// syntax
while (Bedingung) {
    Rumpf
}

// example
FatOrangeCat garfield = new FatOrangeCat();
while (garfield.isAlive()) {
    garfield.eat();
}
  • Wird ausgeführt, solange die Bedingung true ist
  • Kopfgesteuerte Schleife

do-while

// syntax
do {
    Rumpf
} while (Bedingung);

  • Wird ausgeführt, solange die Bedingung true ist
  • Wird mindestestens einmal ausgeführt
  • Fußgesteuerte Schleife

for

// syntax
for (Initialisierung; Bedingung; Schritt) {
    Rumpf
}

// example
public void printPowerLevel(int power) {
    for (int i = 0; i <= power; i++) {
        System.out.printf("Power Level: %d%n", i);
        if (i == 9001) {
            System.out.println("IT'S OVER 9000!!!");
        }
    }
}
  • Initialisierung wird vor erstem Durchlauf ausgeführt
  • Wird ausgeführt, solange die Bedingung true ist
  • Schritt wird nach jedem Durchlauf ausgeführt
  • Kopfgesteuerte Schleife

Aufgabe

  • Ersetze alle Konstrukte durch äquivalente while Konstrukte
  • Lösung darf kein d und kein f enthalten
  • Jede Gruppe bearbeitet die ganze Aufgabe eigenständig

Aufgabe / Lösung

For A Few Keywords More

  • break
  • continue

break

  • Bekannt von switch
  • Bricht die aktuelle Schleife ab
  • Weitere Durchläufe werden nicht ausgeführt
  • Ist in Schleifen so gut wie immer Bad Practice

continue

  • Bricht den aktuellen Schleifendurchlauf ab
  • Schleife wird mit nächstem Durchlauf fortgesetzt
  • Ist so gut wie immer Bad Practice

JavaDoc

  • Was ist es?
  • Wie benutze ich es?
  • Anwendungsbeispiel

Was ist JavaDoc?

Javadoc is a tool for generating API documentation in HTML format from doc comments in source code.

Java Doc Documentation

Wie benutze ich JavaDoc?

Beispiel für JavaDoc

DMS Documented

  • JavaDocs für unser DMS

Ergebnis

Feierabend!

© http://www.explosm.net/comics/1812/