Hallo alle zusammen,
ich bin ein wenig verwirrt und verstehe nicht warum mein Programm tut
was es tut.
Der Code sieht folgendermaßen aus:
#include <iostream>
using namespace std;
int main()
{
int iInput1;
int Zahl = 0;
cout << "Gib den ersten Wert ein: " << endl;
cin >> iInput1;
/*Do Schleife*/
do
{
Zahl++;
cout << "Zaehler: " << Zahl << endl;
cout << "Input Zahl: " << iInput1 << endl;
} while (iInput1 >= Zahl);
return(0);
}
Wenn ich als Wert für iInput1 den Wert 3 Schreibe dann hätte ich
erwartet das meine do while als Wert die Variable bis 3 hoch zählt, aber
diese wird bis 4 gezählt. Somit steht als Ergebnis in der Konsole was
oben als Bild angehangen ist.
Kann mir jemand erklären warum?
Vielen Dank euch allen
Deine do..while-Schleife wertet das Abbruchkriterium erst nach dem Durchlauf der Schleife aus. Ändere das zu
1 | while (iInput1 >= Zahl) |
2 | {
|
3 | Zahl++; |
4 | cout << "Zaehler: " << Zahl << endl; |
5 | cout << "Input Zahl: " << iInput1 << endl; |
6 | };
|
und das Abbruchkriterium wird vor dem Schleifendurchlauf überprüft.
... und lern gleich etwas plattformunabhängiges was Zukunft hat (wie z.B. Java oder Python).
Hallo, man könnte die Abbruchbedingung natürlich auch in
1 | while (iInput1 > Zahl); |
ändern. Mit besten Grüßen Murmelchen
IAVler schrieb: > ... und lern gleich etwas plattformunabhängiges was Zukunft hat > (wie > z.B. Java oder Python). IAV, das sagt schon alles...
IAVler schrieb: > ... und lern gleich etwas plattformunabhängiges was Zukunft hat > (wie z.B. Java oder Python). C++ läuft auf mehr Plattformen als Java und Python. Solange es Bedarf an effizienter Software gibt wird C++ Zukunft haben.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.
