Kompletter anfänger hat eine Frage



  • Griffn schrieb:

    Also praktisch wird überhaubt nicht gefragt ob i oder j erhöht wurden sondern ob sie 0 < also wahr sind? das würde es erklähren.

    Richtig, das if interessiert sich nicht für die Nebeneffekte, sondern nur für das Ergebnis der Bedingung.

    Jetzt bleibt für mich nurnoch offen warum i 2 mal erhöht wurde, kann es sein das die bedingung 2 mal gecheckt wird falls etwas geregelt wurde?

    Nein! Die Bedingung wird genau 1x geprüft.

    Lies dir doch bitte die gefühlten 100 Erklärungen nochmals durch!

    1
    if ( i++ || j++ ) i++;
    false true
    i++ wird ausgeführt

    Genau, das sind doch schon 2 i++.

    false || true ergibt true. Die Bedingung ist doch wahr!

    2. if ( i++ || j++ ) i++;
    true
    da i ja erhöht wurde und somit true ist
    i++ wird ausgeführt

    Nein!



  • Griffn schrieb:

    Jetzt bleibt für mich nurnoch offen warum i 2 mal erhöht wurde, k

    Wenn die Bedingung beim if wahr ist, wird der if-Zweig ausgeführt. Und da steht noch ein i++

    if ( i++ || j++ ) 
      { 
        i++;
      }
    

    so besser? Ist kein Unterschied zu dem Einzeiler.


Anmelden zum Antworten