for schleife

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Was bezweckt deine dargestellt Schleife zu dieser ?
    for(new i = 0;i < MAX_PLAYERS;i++)


    Aber die findet man überall alleine schon wenn man for schleife bei google eingibt..
    Dafür ist auch der kleine Scriptingfragen Thread geeignet

    KleineHilfe 2.0


  • wenn man man eine variable neu deklariert, steht sie immer auf NULL.
    Deswegen braucht man da nicht immer new i = 0 
    schreiben.
    ;)
    ansonsten gibt es da keinen anderen Unterschied ;)


    Sag bloß..Das ist mir schon bewusst.. Aber warum ist bitte "!=(Ungleich)" ein Ersatz für "größer als"?
    Heißt das etwa solange die vari == 0-500 ist = ++?

    KleineHilfe 2.0

  • In DIESEM Fall ist es das durchaus.
    Pro "Runde", also pro "Durchlauf" der Schleife wird die Variable (hier: i) um 1 erhöht und es ERFÜLLT somit die Bedingung dass i _nicht_ 500 (also MAX_PLAYERS, je nachdem, wie hoch) ist. Gleiches ist ja nun bei "größer als". Wenn die Schleife bei der 2. Runde ist, dann ist sie nicht in der 500. Runde, sprich 2 ist kleiner 500: Bedingung erfüllt, weiter gehts.


    Man sollte aber beachten (soweit ich jetzt klar denke), dass man statt "<" lieber (zumindest in diesem Fall) auf "<=" zurückgreifen sollte. Denn so wird der 500. Spieler auch noch einbezogen, bei "<" ginge es "nur" bis 499.

  • Aber warum ist bitte "!=(Ungleich)" ein Ersatz für "größer als"?
    Heißt das etwa solange die vari == 0-500 ist = ++?


    Ungleich hat den Vorteil, das nicht noch geprüft werden muss in welche Richtung, die Bedinung evtl nicht stimmt.


    Das sind zwar vielleicht nur ein oder zwei millisekunden, aber ich optimiere meine Sachen gerne,
    deswegen hab ich das mal so benutzt :thumbup:


    TutNichts:
    Warum sollte man auf 501 Durchläufe haben, wenn man nur 500 braucht?


    0 - 499 = 500
    0 - 500 = 501


    Also in so einer Schelife ist <= nicht sinnvoll.
    Kann zum Array out of Bounds führen, was Programme, absolut nicht mögen :P

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski


  • Ungleich hat den Vorteil, das nicht noch geprüft werden muss in welche Richtung, die Bedinung evtl nicht stimmt.


    Das sind zwar vielleicht nur ein oder zwei millisekunden, aber ich optimiere meine Sachen gerne,
    deswegen hab ich das mal so benutzt :thumbup:


    Tatsache? Wow, ok, danke für die Information! :o



    edit:
    @BlackAce:
    Täusche ich mich evtl.?!
    Weil jetzt mal gesprochen würde "<=" doch kleiner gleich lauten, oder?
    Und wenn ich sage:
    500 <= 500
    würde er die 500 doch noch machen aber die:
    501 <= 500
    wäre dann nicht mehr möglich, oder bin ich jetzt komplett falsch? ^^

    Einmal editiert, zuletzt von TutNichts ()

  • Weil jetzt mal gesprochen würde "<=" doch kleiner gleich lauten, oder?
    Und wenn ich sage:
    500 <= 500
    würde er die 500 doch noch machen aber die:
    501 <= 500
    wäre dann nicht mehr möglich, oder bin ich jetzt komplett falsch? ^^


    Du täuscht dich :P


    idR fangen Zahlen/Arrays bei Programmier/Scriptsprachen bei 0 an.


    Initialisiere ich nun meine Variable i, in der schleife mit 0 und möchte MAX_PLAYERS(500) durchläufe,
    brauch ich den kleiner als Operator -> 0 - 499 = 500


    initialisiere ich meineVariable allerdings mit 1, kann ich kleiner gleich nutzen, denn dann hab ich auch 500 durchläufe -> 1 - 500 = 500


    mache ich das jetzt mit 0, hab ich 501 dürchläufe 0 - 500 = 501


    Die beiden letzteren sind aber irgendwie ziehmlich scheiß Ideen :D
    Einfach aus dem Grund, man hat 1. einen nicht initialisierten Wert und zwar 500, denn ein Array mit 500 Einträgen geht von 0 - 499
    und 2. hast du bei der 2. Option einen ungebrauchten Wert und zwar den ersten, bzw 0.


    Die Folge unnötiger Speicherverbrauch und Index out of Bounds


    //Edit: falsch verstanden :D


    Da hast du antürlich recht, denn 500 ist ja noch in dem Rahmen, wenn die Bedingung 500 <= 500 ist
    alles drüber - nicht :thumbup:

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski