Do-While schleife umwandeln....



  • 1. in deinem ersten post is das if (...) aber mit dabei

    2. [@Guest1]

    Guest1 schrieb:

    do
        { // do something
          i++;
        }  
    while (i<x);
    }
    

    !=

    for( i = 0; i < x; i++ ) {
        // do something
    }
    

    weil bei der do-while geschichte auf jeden fall einmal i incrementiert wird, bei der for-schleife aber nicht...

    bb



  • Huch. Mein Fehler. Ich bitte um Entschuldigung.



  • In meinem 1.Post habe ich geschrieben das es möglich ist eine for-Schleife als do-while Schleife auszudrücken.( mit Hilfe der IF Funktion )

    Ich möchte aber eine gewöhnliche Do-While-Schleife ( OHNE IF ) als FOR- Schleife ausdrücken.

    Wäre euch wirklich sehr dankbar um Tipps. Wäre wichtig. Vielen Dank.



  • Wäre wirklich sehr wichtig. Vielen Dank 😕



  • dann geb doch mal ein Beispiel im Formart

    DO-While:

    //Hier kommt deine Loop rein
    

    ->

    //hier kommt dann deine for rein
    

    dann können wir dir ein System entwickeln...



  • bool first = true; // geht nicht in Schleifenkopf, deshalb Deklaration vorher
    for (int i = 0; i < x || first; ++i, first = false)
    {
       // do something
    }
    

    Aber was bezweckst du damit? Do-While-Schleifen haben ihren eigenen Anwendungsbereich, und man sollte nicht krampfhaft versuchen, sie in For-Schleifen umzubiegen...



  • Nexus schrieb:

    Aber was bezweckst du damit? Do-While-Schleifen haben ihren eigenen Anwendungsbereich, und man sollte nicht krampfhaft versuchen, sie in For-Schleifen umzubiegen...

    Das hat er bereits erwähnt. Ich habe ihn auch gefragt (=> Seite 1).



  • Also ich persönlich stehe auf das hier:

    int N = ...
    for (int i = 0; i < N; ++i)
    {
        if (BedingungErfüllt)
        {
            ....
            break;
        }
    }
    


  • Zur Not einfach den Schleifenkörper einmal davor ausschreiben und danach die for-Schleife, so ist die Eigenschaft der do-while-Schleife auf jeden Fall erfüllt.

    Und du siehst ja an den vorgeschlagenen Lösungen wie furchtbar diese sind, ich halte es auch für recht unwahrscheinlich, dass sowas mit einer sonderlich komplizierten Schleife dran kommt.
    Du sollst wahrscheinlich nur wissen, dass man alle Schleifenvarianten durch einen jeweils anderen Typ ausdrücken kann.



  • Höchstwahrscheinlich bekommst du eine Do-While-Schleife vorgesetzt und dann sollst du den Algorithmus in eine For-Schleife umwandeln und musst das nicht hässlich zusammenkleben wie hier vorgeschlagen sondern kannst einfach einen Algorithmus mit For-Schleife angegeben der das gleiche tut.

    Je nachdem wie tiefgründig ihr das handhabt vllt. noch beweisen.



  • _matze schrieb:

    Das hat er bereits erwähnt. Ich habe ihn auch gefragt (=> Seite 1).

    Sorry, da hab ich wohl zu wenig genau gelesen...

    Aber ist das nicht ein Witz, dass einem beigebracht wird, wie man Schleifen ineinander umwandelt? Abgesehen davon, dass jede Schleife einen spezifischen Einsatzbereich hat und solche Umwandlungen kaum nützlich sind, kann man das durch kurzes logisches Überlegen (mit genauer Kenntnis der Schleifentypen) auch selber herausfinden.


Anmelden zum Antworten