Zum Inhalt springen

For Schleife in while Schleife umwandeln


Empfohlene Beiträge

Geschrieben

Hallöchen!!!

Ich hab mal eine frage und zwar versteh ich nicht wie man eine for Schleife in eine while Schleife umwandeln kann. Evt kann mir das ja jemand erklären... Ich weiß ist sicherlich eine doofe frage aber C scheint mir echt nicht zu liegen.

Danke schlnmal im vorraus...

Geschrieben

FOR:

für i = 0, lauf solange i kleiner als 100, schrittweise nach vorn

WHILE:

solange mein i kleiner 100 ist, lauf!! vergiß jedoch nicht das i schrittweise zu erhöhen

Geschrieben

Moin.

Ganz einfach? Also:

for (int i = 0; i < 10; i++) {

}
könnte man so schreiben:
int i = 0;

while(i++ < 10) {

}

Hoffe das hilft.

BTW: Wie immer ohne Gewähr... :D

Geschrieben

Also wäre das z.b das is meine for schleife die ich in while umwandeln muss

for (iSchleife = 0; iSchleife < iZaehler; iSchleife++)

    {

        if (sZeile[iSchleife] == 'e')

        {

            sZeile[iSchleife] = 'E';

        }

    }
Das ist mein Versuch...
while

          {

              if (iSchleife < iZaehler)

              {

                   sZeile[iSchleife] =='e';

              }

              printf ("E");

          }

Geschrieben

In der for-Schleife überprüfst du ob die Zeile ein "e" ist und ersetzt es mit "E".

Das innere der while-Schleife macht was völlig anderes.

Geschrieben
ja ich möchte die obige For schleife durch eine while ersetzen... hab nur leider absolut keine ahnung wie das funktioniert... aber das siehst du ja selbst :(

Ja, man merkts. :e@sy

Fangen wir mal so an:

for (iSchleife = 0; iSchleife < iZaehler; iSchleife++)

    {

        if (sZeile[iSchleife] == 'e')

        {

            sZeile[iSchleife] = 'E';

        }

    }
Als erstes mal das for wegnehmen und die Bedingung mitnehmen...
while(iSchleife < iZaehler)

     {

        if (sZeile[iSchleife] == 'e')

        {

            sZeile[iSchleife] = 'E';

        }

    }
Dann noch die das inkrementieren von iSchleife reinbasteln:
while(iSchleife++ < iZaehler)

     {

        if (sZeile[iSchleife] == 'e')

        {

            sZeile[iSchleife] = 'E';

        }

    }

Und dann müßte das klappen. Kann das grad nicht testen, aber theoretisch sollte das gehen. :rolleyes:

EDIT: Vorher iSchleife noch auf 0 setzen. ;)

Ädit2: Schau mal hier: Volkards C++-Kurs, for-Schleife

Geschrieben

Kann das hier leider auch nicht testen mein compiler mag mich bzw mein betriebssytem nicht sonderlich. Werd es morgen ma testen und dir bericht erstatten...

Danke vielmals für deine hilfe und der echt guten Erklärung... Das hab nun selbst ich verstanden :valen

Geschrieben

Die folgende FOR-Schleife


#include<stdio.h>


int main(void)

{

int i;


for(i = 0;i <= 10; i++)

{

printf("%d",i);

}


}

würde folgendermaßen aussehen

while(i<=10)

{

printf("%d",i);

i++

}

Man muß auf die Abbruchbedinung achten, da du sonnst eine Endlosschleife bekommst.

Geschrieben

Hmm, mich würde ehrlich interesieren, wozu du eigentlich die beiden Zyklen tauschen willst? Gibts da nen speziellen Grund?

Den eigentlich ist das doch nur l Arbeit ohne erkennbaren Lohn! :D

Geschrieben
Den eigentlich ist das doch nur l Arbeit ohne erkennbaren Lohn! :D

Ich vermute Schul-/Lehraufgabe, und da is der Sinn ganz einwandfrei gegeben. (Beschäftigen, Verstehen) -> Lernen

Geschrieben

Naja, irgendwie klingt das logisch!

Aber am Ende verleitet das die Schüler noch zu irgendwelche Programmierekszessen, einfach weil sie denken, dass ist ganz normal, Zählschleifen durch Kopfabweisende darzustellen.

Sollte mMn eigentlich ganz klar von einander getrennt werden...

Aber ich glaube ich schweife ab :D

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...