«

»

Jan
05

übersichtlichere if-Verschachtelungen

Mir passiert es häufig das ich viele Bedingungen innerhalb einer Funktion Prüfen muss die, wenn sie alle Falsch sind, zu einer Funktionsbeendigung führen.

Anfänglich hatte ich Code in etwa wie folgt:

if (dies) {
  if (jenes) {
    if (nochetwas) {
       return TRUE;
    }
  }
}

/* normaler Funktionsablauf */

Nun kann man die if’s natürlich zusammenfassen:

if (a && b && c && d) { .. }

Bei sehr vielen solcher Vergleiche bzw. wenn die Länge eines Vergleichs relativ lang wird, wird es sehr schnell unübersichtlich:

if (tolle_funktion_prueft_etwas() && eine_andere_funktion(mit,parameter) && .... ) { .. }

Heute Nachmittag hatte ich die Idee einer Pseudo-Schleife die Breite des Codes deutlich minimiert:

for (;;) {
  if (dies)
    break;
  if (jenes)
    break;
  if ...

  return TRUE;
}

/* normaler funktions ablauf */

Dies ermöglicht zum einen saubereres Kommentieren und zum anderen Übersichtlichkeit nach unten statt nach rechts.

1 Kommentar

  1. hnaz sagt:

    Wie waer’s mit do { … } while (0); ? :-)
    Waere aber auch ein super Kanditat fuer labels und gotos.

Hinterlasse eine Antwort

Ihre E-Mail-Adresse wird nicht veröffentlicht.

Sie können diese HTML-Tags verwenden: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

What is 3 + 2 ?
Please leave these two fields as-is:
IMPORTANT! To be able to proceed, you need to solve the following simple math (so we know that you are a human) :-)