Pre- oder Post-Inkrementierung bei for-Schleifen?



  • camper++ schrieb:

    camper schrieb:

    Wieder mal ein schönes Beispiel dafür, dass die Länge einer Diskussion umgekehrt proportional zu deren Bedeutung ist.

    👍

    👍

    Japp. Sieht man schon an ALLEN laengeren Threads im RudP. Und wenn Kleinkinder wie Pi und Hacker mitposten, sinkt das Niveau rapide gegen Null.



  • Kommt es nicht auch darauf an wo man i++/++i benutzten will ?Jenachdem kann man das dann benutzen wie man will.



  • 7xCore schrieb:

    Kommt es nicht auch darauf an wo man i++/++i benutzten will ?Jenachdem kann man das dann benutzen wie man will.

    Ja natürlich, immerhin sind es 2 unterschiedliche Operatoren. Immer den Prefix-Operator zu benutzen ist doch nur darauf bezogen, wenn du für den zurückgegebenen Wert überhaupt gar keine Verwendung hast.



  • Kein einziger von euch hat verstanden, worauf ich eigentlich hinaus will, obwohl es doch so offensichtlich ist. Wenn man i++ sieht, sollte der erste Gedanke sein "Wofür wird hier der Rückgabewert gebraucht". Zumindest bei mir ist das so. Wenn ihr nicht so denkt, ist das euer Fehler.

    Ich freue mich schon auf Flames ala "Du siehst deine Meinung als einzig richtige an blafu", aber ist nunmal so, dass meine die einzig logisch sinnvolle und begründbare ist.



  • 314159265358979 schrieb:

    Wenn man i++ sieht, sollte der erste Gedanke sein "Wofür wird hier der Rückgabewert gebraucht". Zumindest bei mir ist das so. Wenn ihr nicht so denkt, ist das euer Fehler.

    Ersetze "Fehler" durch "Problem", dann ist die Aussage nicht verfänglich. So klingt sie arrogant. Durch solche Schnitzer ziehst du die Flamewars magisch an.

    Wenn ich "i++" oder "++i" sehe, ist mein erster Gedanke "hier wird inkrementiert". Das ist die primäre Aufgabe. Und auch wenn "++i" eine nette Angewohnheit ist, ist deshalb "i++" nicht böse.



  • Was ist dan der Aussage von PI arrogant?Das einzige was an ihr ist, ist das sie stimmt ?!



  • 314159265358979 schrieb:

    Wenn man i++ sieht, sollte der erste Gedanke sein "Wofür wird hier der Rückgabewert gebraucht". Zumindest bei mir ist das so. Wenn ihr nicht so denkt, ist das euer Fehler.

    Ich denke immer: Warum pre-inc, warum post-inc? Weil: Einen Wert geben ja beide zurück. Aber laut Deiner Definition ist das ja fehlerhaft und ich wälze mich jetzt erst mal demütig im Dreck.



  • @hustbaer: Hab ja extra "Spektrum" gesagt. Davon konnte ich natürlich nur einige Punkte rausschreiben, nicht alle. Und er Pfeil ging ja auch nach rechts noch weiter. 😉

    @7xCore: Selbst wenn etwas stimmt, gibt es ja unterschiedliche Nettigkeitsstufen in der Ausdrucksweise. 🙂



  • 314159265358979 schrieb:

    Ich freue mich schon auf Flames ala "Du siehst deine Meinung als einzig richtige an blafu", aber ist nunmal so, dass meine die einzig logisch sinnvolle und begründbare ist.

    Nein. Du sagst A weil A. Das ist nicht logisch Begründet.
    Ich stimme dir zwar zu, dass ++i immer i++ vorzuziehen ist - aber das bedeutet nicht dass i++ logisch anders gelesen wird.

    Natürlich kann man jetzt argumentieren dass ++i ja immer besser ist und somit i++ wenn es denn vorkommt einen gewissen Sinn haben muss. Aber das ganze kann man umdrehen: immer i++ verwenden weils eh egal und somit muss, wenn ich denn plötzlich mal ein ++i sehe hier der Rückgabewert eine wichtige Rolle spielen.

    So lässt sich für beides argumentieren.



  • dieeinzigwahremeinung schrieb:

    314159265358979 schrieb:

    Wenn man i++ sieht, sollte der erste Gedanke sein "Wofür wird hier der Rückgabewert gebraucht". Zumindest bei mir ist das so. Wenn ihr nicht so denkt, ist das euer Fehler.

    Ich denke immer: Warum pre-inc, warum post-inc? Weil: Einen Wert geben ja beide zurück. Aber laut Deiner Definition ist das ja fehlerhaft und ich wälze mich jetzt erst mal demütig im Dreck.

    Aber i++ evaluiert im Ausdruck mit i und nach der Anweisung mit i+1, während ++i im Ausdruck und nach der Anweisung mit i+1 evaluieren - weiß du wie gut man Anfänger damit verwirren kann, dass man Code schreibt, der gezielt Eigenschafte des post-inc einsetzt? Ja kann man, eh geht doch nicht! 😃



  • 7xCore schrieb:

    Was ist dan der Aussage von PI arrogant?

    Dass es ein Fehler ist, wenn man nicht seiner Meinung ist.

    Das einzige was an ihr ist, ist das sie stimmt ?!

    Und das ist genau so arrogant, weil sie absolut ist, und keinen Raum für Diskussion lässt.

    PI hat ja als erstes eingeworfen "es zählt, was das Konstrukt ausdrücken soll". Und primär drückt sowohl "++i" als auch "i++" aus "erhöhe i um eins". Der Rest fällt bös gesagt unter Nebeneffekt, wenngleich er hier nicht ganz so unbedeutend ist. Nach PIs Darstellung erhöht ++i nur, i++ erhöht und gibt das alte i zurück - dass ++i auch etwas zurückgibt scheint für ihn Nebensache.



  • Zeus schrieb:

    Aber i++ evaluiert im Ausdruck mit i und nach der Anweisung mit i+1, während ++i im Ausdruck und nach der Anweisung mit i+1 evaluieren

    Es geht hier - wie schon mehrmals erwähnt wurde - um das alleinstehende Inkrementieren. In den anderen Fällen ist doch schon durch den Kontext die Wahl von Prä- oder Postinkrement fest vorgegeben.



  • 7xCore schrieb:

    Was ist dan der Aussage von PI arrogant?Das einzige was an ihr ist, ist das sie stimmt ?!

    Er sieht seine Meinung als das Mass aller Dinge.
    Er setzt "nicht einer Meinung mit ihm sein" mit "ihn nicht verstanden haben" gleich.
    Ne, natürlich gar nicht arrogant.



  • @Zeus: Das ist mir schon klar. Ich wollte nur darauf hinaus, dass '"Wofür wird hier der Rückgabewert gebraucht"' für beide Operatoren gilt, was PI's Aussage nutzlos macht.

    Und jetzt halte ich mich aus der Diskussion lieber raus, weil die zu nichts Sinnvollem mehr führt.



  • 314159265358979 schrieb:

    Ich freue mich schon auf Flames ala "Du siehst deine Meinung als einzig richtige an blafu",

    Ja, weil es genau so ist.

    aber ist nunmal so, dass meine die einzig logisch sinnvolle und begründbare ist.

    Was du nicht verstehst, ist, dass es im Endeffekt egal ist wie man's schreibt.
    Aussagen wie "jeder der i++ schreibt ist blah" sind einfach nur Schwachsinn.

    Du hast keine Ahnung von der Praxis, mutest dir aber permanent an alles besser beurteilen zu können als *alle anderen hier*.

    Bist du wirklich so daneben dass du nicht merkst, dass das nicht sein kann? Meinst du echt hier im Forum wären nur lauter Vollidioten die trotz 20+ Jahren mehr Lebenserfahrung als du und der zig oder hundertfachen Projekterfahrung (in der Praxis) nicht fähig wären ein paar Dinge besser einzuschätzen als du?


  • Mod

    314159265358979 schrieb:

    Kein einziger von euch hat verstanden, worauf ich eigentlich hinaus will, obwohl es doch so offensichtlich ist. Wenn man i++ sieht, sollte der erste Gedanke sein "Wofür wird hier der Rückgabewert gebraucht". Zumindest bei mir ist das so. Wenn ihr nicht so denkt, ist das euer Fehler.

    Ich freue mich schon auf Flames ala "Du siehst deine Meinung als einzig richtige an blafu", aber ist nunmal so, dass meine die einzig logisch sinnvolle und begründbare ist.

    Das kann ja sein. Nur geht der Vorwurf, man sei nicht schlau genug, um etwas zu verstehen, ins Leere.
    Umgekehrt wird ein Schuh draus: du solltest dich auf unser Niveau herunterdenken, damit eine produktive Diskussion entstehen kann.



  • Michael E. schrieb:

    Es geht hier - wie schon mehrmals erwähnt wurde - um das alleinstehende Inkrementieren.

    Ach, dann. Wie Otze schon sagte, wird das ja wegoptimiert, also ist es ja im Endeffekt bei der Schleife vollständig Egal. Ich dachte, dass eine Funktion ala

    const myclass operator++(int)
    {
        return ++*this - 1;
    }
    

    in einer Schleife zusätzlichen Kopieraufwand bedeutet.



  • @hacker: So wie Du geschrieben hast, ist es richtig. Prä-Inc gibt eine Referenz zurück, Post-Inc eine Kopie. Geht auch nicht anders, da bei Post-Inc ja eine Änderung stattfindet, die beim zurück Gegebenen nicht sichbar sein soll.



  • Ein sehr dubioses Thema



  • 314159265358979 schrieb:

    Kein einziger von euch hat verstanden, worauf ich eigentlich hinaus will, obwohl es doch so offensichtlich ist. Wenn man i++ sieht, sollte der erste Gedanke sein "Wofür wird hier der Rückgabewert gebraucht". Zumindest bei mir ist das so. Wenn ihr nicht so denkt, ist das euer Fehler.

    Ich hab schon lange verstanden worauf du hinaus willst und frage mich dann immer, was ist eigentlich der Rückgabewert von i++ bei int und vorallem welcher Hansel hat den ++ Operator für int überladen?


Anmelden zum Antworten