Zum Inhalt springen

fußgesteuerte und kopfgesteurte Schleife in C++


Empfohlene Beiträge

Geschrieben

Hallo liebe Leute,

ich hoffe ihr könnt mir helfen! Ich schreibe übermorgen Informatik und weiß nicht wann ich eine fußgesteurte und eine kopfgesteurte Schleife anwende.

Schön wäre an einer Aufgabe zu erklären wann ich welche Schleife anwende.

Der Unterschied ist mir bewusst.

Bei der kopfgesteurten Schleife: Solange die Bedingung wahr ist, wird die Aktion ausgeführt.

Bei der fußgesteurten Schleife: Die Aktion wird solange ausgeführt bis die Bedingung falsch ist. und die Aktion wird dabei min einmal durchlaufen.

Danke für eure Antworten.

Geschrieben
Bei der kopfgesteurten Schleife: Solange die Bedingung wahr ist, wird die Aktion ausgeführt.

Bei der fußgesteurten Schleife: Die Aktion wird solange ausgeführt bis die Bedingung falsch ist.

"Solange wahr" und "solange bis falsch" ist dasselbe ;)

und die Aktion wird dabei min einmal durchlaufen.
Das ist der entscheidende Unterschied. Im Gegensatz dazu wird die kopfgesteuerte Schleife, wenn die Schleifenbedingung gleich zu Beginn falsch ist, komplett übersprungen.
Geschrieben
"Solange wahr" und "solange bis falsch" ist dasselbe ;)

Das ist der entscheidende Unterschied. Im Gegensatz dazu wird die kopfgesteuerte Schleife, wenn die Schleifenbedingung gleich zu Beginn falsch ist, komplett übersprungen.

Vielen Dank für die Antwort, jedoch weiß ich nicht bei welcher aufgabe ich welche schleife anwende. ich bräuchte mal ein beispiel von euch.

Geschrieben
"Solange wahr" und "solange bis falsch" ist dasselbe ;)

Das ist der entscheidende Unterschied. Im Gegensatz dazu wird die kopfgesteuerte Schleife, wenn die Schleifenbedingung gleich zu Beginn falsch ist, komplett übersprungen.

Vielen Dank für die Antwort. Ich bräuchte mal ein Beispiel an dem ich erkenne wann ich welche Schleife anwende.

Kann mir das als Aufgabe nicht vorstellen.

Geschrieben (bearbeitet)

Kopfgesteuert (abweisende Schleife):


int i, summe;

summe=0;

i=0;

while(i < 10) {

    summe= summe + i;

    i++;

}
Fußgesteuerte Schleife (nicht abweisende Schleife):

int i, summe;

summe=0;

i=0;

do {

    summe = summe + i;

    i ++;

} while (i <10);
Beide Schleifen machen das gleiche, wo liegt der Unterschied, ganz einfach wie oben schon gesagt, die Fußschleife läuft mindestens einmal durch, das kann man nicht verhindern. So würde z.B. der folgende Schleifenrumpf kein einziges Mal durchlaufen, denn diese prüft erst die Bedingung und falls diese zutrifft wird der Schleifenrumpf ausgeführt, bei der Fußgesteuerten dagegen wird der Rumpf mind. einmal durchlaufen, weil diese zuerst die Anweisungen im Schleifenrumpf ausführt und dann erst testet, ob die Bedingung erfüllt ist!

int i, summe;

summe = 0;

i =1000;   //beachte hier die Änderung

while(i < 10) {

    summe = summe + i;

    i ++;

}
Wird keinmal durchlaufen! Summe am Ende 0; i am Ende 1000;

int i, summe;

summe =0;

i=1000;

do {

    summe = summe + i;

    i ++;

} while (i <10);

Wird einmal durchlaufen (summe am ende = 1000), i am Ende 1001;

Bearbeitet von konsti4u
Geschrieben
Kopfgesteuert (abweisende Schleife):


int i, summe;

summe=0;

i=0;

while(i < 10) {

    summe= summe + i;

    i++;

}
Fußgesteuerte Schleife (nicht abweisende Schleife):

int i, summe;

summe=0;

i=0;

do {

    summe = summe + i;

    i ++;

} while (i <10);
Beide Schleifen machen das gleiche, wo liegt der Unterschied, ganz einfach wie oben schon gesagt, die Fußschleife läuft mindestens einmal durch, das kann man nicht verhindern. So würde z.B. der folgende Schleifenrumpf kein einziges Mal durchlaufen, denn diese prüft erst die Bedingung und falls diese zutrifft wird der Schleifenrumpf ausgeführt, bei der Fußgesteuerten dagegen wird der Rumpf mind. einmal durchlaufen, weil diese zuerst die Anweisungen im Schleifenrumpf ausführt und dann erst testet, ob die Bedingung erfüllt ist!

int i, summe;

summe = 0;

i =1000;   //beachte hier die Änderung

while(i < 10) {

    summe = summe + i;

    i ++;

}
Wird keinmal durchlaufen! Summe am Ende 0; i am Ende 1000;

int i, summe;

summe =0;

i=1000;

do {

    summe = summe + i;

    i ++;

} while (i <10);

Wird einmal durchlaufen (summe am ende = 1000), i am Ende 1001;

Danke,

aber wann brauche ich welche Schleife? wenn ich eien aufgabe bekomme weiß ich nicht, welche ich anwenden soll.

Geschrieben
aber wann brauche ich welche Schleife? wenn ich eien aufgabe bekomme weiß ich nicht, welche ich anwenden soll.

Das kommt darauf an, wie dein Programmablauf strukturiert ist.

Beispiel: Ein Programm liest vom Benutzer eine Liste von Zahlen ein und gibt sie wieder aus. Der Benutzer soll das Einlesen durch Eingabe von -1 beenden können. Die Einleseschleife muss also mindestens einmal durchlaufen werden, um überhaupt erst einmal eine Zahl einzulesen, auch wenn der Benutzer die Eingabe sofort durch -1 beendet.

Wenn das Programm hinterher die Zahlen wieder ausgeben soll, soll es natürlich nichts tun, wenn keine Zahlen zum Ausgeben vorhanden sind.

Die Eingabeschleife wäre also fußgesteuert, die Ausgabeschleife kopfgesteuert.

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

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...