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.
-
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?
-
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.
-
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.