return in einer whileschleife



  • hi.
    ich wollte mal wissen, ob es ok ist ein returnstatement in einer whileschleife zu nutzen, oder ob dies zu problemen führen kann.

    schonmal danke



  • Is ok.



  • Trotzdem musst du natürlich drauf achten, dass so ein return sauber ist. Speicher allozieren und wegen des returns nicht wieder freigeben wäre z.B. böse.


  • Mod

    _matze schrieb:

    Trotzdem musst du natürlich drauf achten, dass so ein return sauber ist. Speicher allozieren und wegen des returns nicht wieder freigeben wäre z.B. böse.

    Das Problem sollte man allgemein umschiffen, indem Speicherreservierungen automatisch mit dem verlassen des Scopes aufgeräumt werden, dann muss man sich auch keine Gedanken um solche selbst verschuldeten Probleme machen.



  • SeppJ schrieb:

    _matze schrieb:

    Trotzdem musst du natürlich drauf achten, dass so ein return sauber ist. Speicher allozieren und wegen des returns nicht wieder freigeben wäre z.B. böse.

    Das Problem sollte man allgemein umschiffen, indem Speicherreservierungen automatisch mit dem verlassen des Scopes aufgeräumt werden, dann muss man sich auch keine Gedanken um solche selbst verschuldeten Probleme machen.

    Ich denke, bei so einer Frage kann man nicht automatisch davon ausgehen, dass er durchgehend (oder überhaupt) RAII verwendet. Daher kann man ruhig mal erwähnen, dass vorm return alles aufgeräumt werden muss. Was ich aber natürlich hätte machen können ist, RAII in dem Zusammenhang gleich zu erwähnen.



  • Ja ja, RAII müsste eigentlich in jedem Beitrag erwähnt werden, und es sollte eigentlich auch automatisch von der Forensoftware fett hervorgehoben werden.

    Jetzt mal im Ernst:
    Hier ging es doch gar nicht um Ressourcen, warum wird ständig und immer auf diesem RAII herumgeritten?

    Dass ich vor einem return meine Ressourcen aufräumen muss, entweder durch explizite Freigabe oder durch die Verwendung von RAII ist doch klar und völlig unabhängig davon, ob mein return in einer while - Schleife oder am Ende meiner Funktion/Methode oder sonstwo steht.

    Edit:
    Will damit sagen: Wer seine Ressourcen - wie auch immer - vor einem return am Funktionsende freigibt, wird das aller Wahrscheinlichkeit nach wohl auch vor einem return in der while - Schleife tun.


  • Mod

    Belli schrieb:

    Edit:
    Will damit sagen: Wer seine Ressourcen - wie auch immer - vor einem return am Funktionsende freigibt, wird das aller Wahrscheinlichkeit nach wohl auch vor einem return in der while - Schleife tun.

    Eigentlich würde ich genau vom Gegenteil ausgehen. Wer seine Ressourcen von Hand freigibt, vergisst so etwas schon mal.


Anmelden zum Antworten