for Schleife verkürzen
-
lass dsn schwachsinn
-
Ok, aber die kürzung bis jetzt ist doch noch lesbar, oder etwa nicht?
Selbst ich, als quasi-anfänger kann das lesen
-
aber du als quasi profi in 10 jahren wirst es nicht merh so ohne weiteres verstehen
wahrscheinlich macht der compiler sowieso das selbe ergebnis draus...
also lohnt sich das nichtwenn die gefahr der endlosschleife besteht dann mach so viele abfragen wei es braucht um sie auszuschliessen
bringt nix wenn du 1 zeile code (statt 10) hast aber alle 3 oder 4 durchläufe kommt eine endlose zustande...
-
Dieses Kürzen hat nicht im Entferntesten mit Code-Optimierung zu tun.
- Du sparst dir damit einige Zeilen. Gut, aber was bringt das?
- In solchen Code schleichen sich Fehler viel schneller ein.
- Man sieht auch nicht auf den ersten Blick, was getan wird.
- Wie gesagt wirst du in Zukunft nur Mühe damit haben.
- Du gewinnst dadurch nicht einmal Performance.
- Im Übrigen gilt es nicht als "gut", "krass" oder "1337", wenn du alles in eine Zeilen packen kannst.
Bilanz: Nichts gewonnen, aber die Übersichtlichkeit und Fehleranfälligkeit haben sich zum Schlechten verlagert.
-
@all:
Ok, ich werde eure Hinweise beherzigen. Aber um hier nicht das letzte Wort zu haben: Beantwortet ist die Frage ja nun noch nicht wirklich
-
XHansWurstX schrieb:
Ich wollte folgende Schleife kürzen:
...
geschafft habe ich es bis hier:
...
Ok, ich werde eure Hinweise beherzigen. Aber um hier nicht das letzte Wort zu haben: Beantwortet ist die Frage ja nun noch nicht wirklich...Dir ist hoffentlich bewusst, das die zweite Variante mit der ersten nichts mehr zu tun hat? In der ersteren beendest du die Schleife wenn entweder i>=NUM oder player[i].is_beg erfüllt ist. In letzterer beendest du die schleife nur noch bei der Bedingung player[i].is_beg.
Wenn schon abkürzen dann ohne Logikänderung
[edit: muss selbst meine Logik nochmal anpassen ;)]
-
Thx, genau sowas in der Art habe ich gesucht.
asc schrieb:
In letzterer beendest du die schleife nur noch bei der Bedingung player[i].is_beg.
Jup, war mir bewusst. Hatte ich aber erwähnt...
-
XHansWurstX schrieb:
Thx, genau sowas in der Art habe ich gesucht.
Leider war ich auch schon zu müde zum schreiben

-
asc schrieb:
[edit: muss selbst meine Logik nochmal anpassen ;)]
hehe, netter Versuch. Musste 2x hingucken

-
XHansWurstX schrieb:
Wie kriege ich die Return-Anweisung in die Schleife unter,
Wenn man diese Anweisung befolgt, dann so:
for(int i=0;;++i){if(i>=NUM){return 0}else if(player[i].is_beg){return i}}Aber davon ist wirklich dringend abzuraten

Grüssli
-
Jup...
dann lieber gleich alles so lassen...