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
:
Verschoben durch User
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.