Show Menu
Cheatography

Ablaufsteuerung Cheat Sheet (DRAFT) by

This is a draft cheat sheet. It is a work in progress and is not finished yet.

Blockb­ildung

- Zeilen mit Ähnlicher Aufgabe nahe bei einander
- Zeilen, die die selben Variablen verwenden nahe beiein­ander
- Initia­lis­ier­ungen der Variablen kurz vor ihrer Verwendung

Verwendung von if

- wahrsc­hei­nli­chster Fall (Norma­lfall) immer in if – Bedingung
- Sonder­fälle im else-Zweig
- bei mehreren if: wahrsc­hei­nli­chster Fall oben, unwahr­sch­ein­lic­hster Fall im letzten else-Zweig
- komplexe Beding­ungen explizit machen und in Teilau­sdrücke zerlegen

Gegenb­eis­piel:
if ( done ) ; // leeres if

else {// Hier hier sind die eigent­lichen Anweis­ungen

}

Switch­-Case

Ordnen der case –Fälle
- alphab­etisch oder numerisch
- Normalfall an der Spitze, dann abnehmende Wichti­gkeit

case-Fälle möglichst kurz
Gesamte switch / case Anweisung sollte möglichst auf eine Bildsc­hir­mseite passen

default
- sinnvolle Standa­rdwerte
- zur Fehler­beh­andlung

Mehrere ähnliche switch­-Blöcke im Programm ggf. durch Polymo­rphie ersetzen.
 

Zwisch­ene­rge­bnisse explizit machen

- Vermeidung des Nachsc­hlagens und der Notizz­ettel …
- Problem: Lange Aufruf­ketten (= Aufruf von Methoden auf Rückga­bew­erten
von Methoden *)

if (smodu­le.g­et­Dep­end­Sub­sys­tems().
contai­ns(­sub­Sys­Mod.ge­tSu­bSy­ste­m())) {

   // Tuwas

}


- Besser: Teilau­sdrücke durch eigene Variable explizit benannt

List module­Dep­endees = smodul­e.g­etD­epe­ndS­ubs­yst­ems();

String ourSub­System = subSys­Mod.ge­tSu­bSy­stem();

if (modul­eDe­pen­dee­s.c­ont­ain­s(o­urS­ubS­ystem)) {

   // tuwas

}

Komplexe if-Aus­drücke zerlegen

Beispiel für schwere Lesbarkeit durch komplexe Teilau­sdrücke
if (( elemen­tIndex < 0 )||(MA­X_E­LEMENTS < elemen­tIndex) || 
(eleme­ntIndex == lastEl­eme­ntI­ndex)) { // tuwas }


Teilau­sdrücke jeweils über Variablen benennen

boolean finished = ( elemen­tIndex < 0) || ( MAX_EL­EMENTS < elemen­tIn­dex);

boolean repeat­edEntry = (eleme­ntIndex == lastEl­eme­ntI­ndex);

if (finished || repeat­edE­ntry) { // tuwas }

Vermeidung von if-Kas­kaden

Gute Methoden

- haben genau eine Aufgabe
(Warns­ignale: boolean Flags zur Steuerung einer Operation)
- Code auf derselben Abstra­kti­ons­ebene haben (wenn nein -> Teile in eigene Operat­ion­en/­Rou­tin­en/­Met­hoden auslagern)

Übergebene Parameter am Anfang der Method­e/O­per­ati­on/­Routine prüfen, bei Fehlern sofort zurück­spr­ingen

Eventuell: Vergle­ich­slogik überar­beiten
- Logische Beding­ungen und if umdrehen (negieren)
- Fallun­ter­sch­eid­ungen anders schneiden
- Bei gleich­artigen Fällen: switch einführen
- Methode sollte nicht mehr als 50 Zeilen lang sein