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ührtGenau, 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ührtNein!
-
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.