For-Schleife nach Befehl noch einmal durchlaufen und dann raus



  • Hi,
    gibt es bei C++ eine Befehle der sagt "bringe den Schleifendurchlauf zuende und dann raus" bei einer for-Schleife?
    Beispiel:

    for (int i = 0; i < 10; i++)
    {
        if (i == 8)
        {
           std :: cout << "Buha sind ja eigentlich schon zu weit..." << std :: endl;
           //Befehl der sagt, Schleife mit i = 8 zuende laufen und dann raus
        }
        else std :: cout << i << std :: endl;
        //Mach tolle Sachen mit i;
    }
    

    Hatte schon überlegt, i einfach auf 11 zu setzen, aber ich muss mit i noch rechnen ist das Problem.

    Sieht ein wenig Sinnlos aus, darum hier nochmal ne kleine Erklärung, wofür ich das Brauche:
    Ich geh einen Array durch, wo er abbrechen soll, wenn er das erste '\0' findet. Problem: das '\0' soll auch mit verarbeitet werden.
    Hab vorher mit einer Funktion nach dem '\0' gesucht und die Schleife dementsprechend laufen lassen, nur wollte ich, wenn dies denn überhaupt geht mit die Funktion nun sparen 😃



  • bool exit(false);
    
    for (int i = 0; (i < 10)&&!exit; i++)
    


  • So?

    const char* foo = "Hallo Welt";
    const char* p = foo;
    
    do
    {
    	std::cout << *p;
    } while ( *p++ );
    


  • darthdespotism schrieb:

    bool exit(false);
    
    for (int i = 0; (i < 10)&&!exit; i++)
    

    Denke das ist die beste Möglichkeit, wenns denn keine andere gibt 😃

    Edit: Wo sind denn meine Manieren gebliben? Danke natürlich 😉



  • Um eine Schleife zu verlassen, gibt es die 'break'-Anweisung:

    for(int i=0; i<10; i++)
    {
      if(bedingung)
        break;
    
      std::cout << i << endl;
    }
    


  • Ja aber ein break lässt die schleife nicht erst bis zum ende des Durchlaufs weiterlaufen was explizit gefordert war


Anmelden zum Antworten