Robert B.: Gibt es einen Sinn für Anweisungen in if-Bedingiungen?

Beitrag lesen

Hallo Lukas,

hier wird variable

  1. mit dem Ergebnis von boolescheFunktion() initialisiert
  2. und falls es (sich wie) ein wahrer Wert ist (verhält), wird der Block ausgeführt.
if (variable = boolescheFunktion()) {
    macheEtwasMit(variable);
    
    // …
}

Und wo soll dann der Unterschied zu

     if (variable == boolescheFunktion()) {
        macheEtwasMit(variable);
        
        // …
      }

sein, außer, dass dann das true-Ergebnis im if-Bereich steht und das false-Ergebnis im else-Bereich?

In deinem Beispiel findet keine Zuweisung statt, sondern nur ein Vergleich. OK, vielleicht hätte ich bei C-ähnlicher Syntax der Funktion auch einen besseren Namen geben sollen, wie z.B. intFunktion(), dann wäre es gleich klar. In C (und verwandten Sprachen) gibt es Typen, die als boolesch verglichen werden können, z.B. int oder Pointer (in C++ mit der Überladung des operator bool sogar noch viel mehr).

Viele Grüße
Robert