Forum: PC-Programmierung C++ erste Schritte


von Vicky M. (vicky_m)


Angehängte Dateien:

Lesenswert?

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
von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

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.

von IAVler (Gast)


Lesenswert?

... und lern gleich etwas plattformunabhängiges was Zukunft hat (wie 
z.B. Java oder Python).

von Murmelchen (Gast)


Lesenswert?

Hallo,

man könnte die Abbruchbedingung natürlich auch in
1
while (iInput1 > Zahl);
ändern.


Mit besten Grüßen

Murmelchen

von dulnik (Gast)


Lesenswert?

IAVler schrieb:
> ... und lern gleich etwas plattformunabhängiges was Zukunft hat
> (wie
> z.B. Java oder Python).

IAV, das sagt schon alles...

von Dr. Sommer (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.