mehrere parameter in for schleife geht nicht?



  • hallo,
    wie macht man das:

    for(int i=0, j=0; i<3&&j<6; i++, j+=2 )
    


  • Gar nicht.


  • Administrator

    1. Was heisst hier "geht nicht"? Funktioniert bei mir wunderbar.
    2. Ist es recht unsinnig:

    for(int i = 0; i < 3; ++i)
    {
      // falls man j will, einfach i * 2.
    }
    

    Grüssli



  • Warum gibt es den Komma-Operator, so wie man den von C kennt, eigentlich nur in so einer verkappten Form für die for-Schleife? 😕


  • Administrator

    non~op schrieb:

    Warum gibt es den Komma-Operator, so wie man den von C kennt, eigentlich nur in so einer verkappten Form für die for-Schleife? 😕

    Er existiert nicht nur für die For-Schleife. Mir fallen da gleich zwei weitere Beispiele ein, wie man ihn verwenden kann:

    int x = 0, y = 0;
    
    // oder unter der Annahme, dass Test IDisposable implementiert
    using(Test t = new Test(), u = new Test())
    {
    }
    

    Wozu willst du den Komma-Operator denn sonst noch verwenden? Denn das folgende ist zwar unter C erlaubt, habe ich aber noch nie von irgendeinem C Programmierer gesehen ausser von Anfängern:

    x += 2, y *= 3;
    // ist auch einfach nur unübersichtlich, weshalb man es so schreibt:
    x += 2;
    y *= 3;
    

    Die Leute hinter C# haben sich wohl überlegt, wo es Sinn macht den Komma-Operator zu benutzen und wo nicht. Mich hat es bisher jedenfalls noch nie gestört.

    Grüssli



  • Dravere schrieb:

    non~op schrieb:

    Warum gibt es den Komma-Operator, so wie man den von C kennt, eigentlich nur in so einer verkappten Form für die for-Schleife? 😕

    Er existiert nicht nur für die For-Schleife. Mir fallen da gleich zwei weitere Beispiele ein, wie man ihn verwenden kann:

    int x = 0, y = 0;
    
    // oder unter der Annahme, dass Test IDisposable implementiert
    using(Test t = new Test(), u = new Test())
    {
    }
    

    Das ist aber nicht der Komma-Operator.


  • Administrator

    Bashar schrieb:

    Dravere schrieb:

    non~op schrieb:

    Warum gibt es den Komma-Operator, so wie man den von C kennt, eigentlich nur in so einer verkappten Form für die for-Schleife? 😕

    Er existiert nicht nur für die For-Schleife. Mir fallen da gleich zwei weitere Beispiele ein, wie man ihn verwenden kann:

    int x = 0, y = 0;
    
    // oder unter der Annahme, dass Test IDisposable implementiert
    using(Test t = new Test(), u = new Test())
    {
    }
    

    Das ist aber nicht der Komma-Operator.

    Kommt darauf an, wie eng man die Sache sieht 🤡 :p
    Wenn ich mich recht erinnere, gibt es grundsätzlich sowas wie einen Komma-Operator in C# gar nicht. Es sind alles Sonderregelungen für die einzelnen Bereiche. 😉

    Grüssli



  • Bashar schrieb:

    Das ist aber nicht der Komma-Operator.

    Wunderbar. 😃 Bashars Detail-Verständnis hat mir schon 2001(?) bei meiner fclose()-Rückgabewert-Frage gefallen.


Anmelden zum Antworten