funktion und schleife



  • Guten Abend,
    wie kann man bitte aus einem funktionsausruf der schleife einen wert geben ?.

    z.b wie void schleifendurchgang (int anzahl)
    for (int i=0, i < anzahl) i++)

    beim aufruf dann schleifendruchgang(10);

    wenn ich das mache läuft er da nicht einmal durch 😞

    grüße



  • Hallo

    In deiner Schleife ist so wirklich alles falsch, was geht: keine , sondern ; und zwar zweimal. Sonst ist das schon richtig, also die Idee. Kennst du den Debugger? Der hilft bei solchen Dingen sehr gut.

    chrische



  • Was meinst Du mit "der Schleife einen Wert geben"?

    Wenn du willst, dass deine Schleife (in einer Funktion) bis n läuft, dann

    void foo( int n ) {
    
        int i = 0;
    
        for( ; i < n; ++i ) {
    
        }
    }
    
    int main( ) {
    
        foo( 10 );
    }
    

    greetz, Swordfish



  • So war das wohl unter C 😉

    void schleifendurchgang(const unsigned int count)
    {
        for (unsigned int i(0); i < count; ++i)
        { /* TODO: Do something! */ }
    }
    

    ... 😉



  • Aaaahhhh, verdammt, ich bin im C++ - Forum... und geb' mir extra noch Mühe, C zu schreiben... 🤡 (Ich suche schon wieder den Smiley mit Kopf gegen die Wand.)

    greetz, Swordfish



  • chrische
    sorry ich hatte das schnell eingetippt und ebend nicht auf die tippfehler geachtet.

    swordfisch
    jepp genau das meinte ich....ich hatte es auch so aber ich hatte nicht int = 0 sondern 10 und dann bringt ein wert von 3 nicht viel bei anzahl (schämm).

    D(evil)
    und wie ist es bei c++ ??
    da wird doch auch der funktion der wert mit funktion(int wert) übergeben oder ?



  • Die Logik ist die selbe, nur ist C++ viiieeel schöner 😉

    void schleifendurchgang( const unsigned int count ) // damit du count nicht aus Versehen in der Funktion änderst -> const
    {
        for( unsigned int i( 0 ) /* Konstruktoraufruf */ ; i < count; ++i ) {
        }
    }
    

    greetz, Swordfish



  • Und, solange nicht C99, wird in C die Variable außerhalb der for-Schleife angelegt ... und das ist doof, weil se dann auch nach der Schleife noch existiert!



  • dann kann das doch sicherlich auch const int heißen oder mus das immer unsignet ?
    obwohl ich kanns ja probieren dann mekr ich ja iob nen fehler kommt

    wie hab ich das mal gelesen...variabeln nur dann anlegen wenn man sie wirklich braucht oder ?



  • Brusko schrieb:

    dann kann das doch sicherlich auch const int heißen oder mus das immer unsignet ?

    Je nach dem, was du brauchst.

    Brusko schrieb:

    obwohl ich kanns ja probieren dann mekr ich ja iob nen fehler kommt

    Nicht immer ist "Fehler" gleich "Compilerfehler"!!

    Brusko schrieb:

    wie hab ich das mal gelesen...variabeln nur dann anlegen wenn man sie wirklich braucht oder ?

    Das ist wie mit dem Milch kaufen, nur dann, wenn du sie brauchst.

    greetz, Swordfish



  • jepp besten dank,,das mit const klappt noch nicht so ganz da gibs fehler aber ich kann mich ja später mal reinlesen und dann ändern.

    viele dank 🙂


Anmelden zum Antworten