Frage zum Verständnis
-
Also, folgenden code habe ich geschrieben:
#include <iostream> using namespace std; int main() { int RundenAnzahl=0; int Zwischenstand=0; int Gesamtpunktzahl=0; cout << "Wieviele Runden sollen gespielt werden? " << "\n"; cin >> RundenAnzahl; cout << "\n\n"; for (int i=0; i<RundenAnzahl ;i++) { cout << "Runde " << i+1 <<" wird gespielt...\a\a\a...\a\a\a...\a\a\a..." << endl; cout << "Wieviele Punkte haben sie erreicht? " ; cin >> Zwischenstand; Gesamtpunktzahl += Zwischenstand; cout << "Zwischenstand: " << Gesamtpunktzahl << "\n\n"; } cout << "Nach " << RundenAnzahl << " Runden wurden eine Gesamtpunktzahl von " << Gesamtpunktzahl << " erreicht." << endl; return 0; }Das Prog funktioniert und fast alles ist ok. Nur eines nicht. Im Aktionsteil der for schleife habe ich ja i++ geschrieben. Doch im code-teil habe ich ja plus 1 geschrieben also müsste es doch nicht richtig funktionieren.
Also:
i ist zunächst 0dann wird i im codeblock um 1 erhöt (also ist hier i=1)
dann geht er die schleife durch, sieht dass die Bedingung noch nicht erfüllt ist und führt doch dann auch den Aktionsteil aus. Also i++. (also ist hier i=2)
im codeblock wird i dann wieder um 1 erhöht. i hat dann den Wert 3, doch er gibt hier den Wert 2 aus. Im den Sinne ja richtig, doch ich versteht nicht, warum er nicht 3 ausgibt.

Kan mir jemand sagen Warum?

mfg
Yero
-
das i+1 beszieht sich ja nur auf den cout. i wird also nicht inkrementiert!
beim ersten durchgang müsste er also 1 ausgeben (i ist aber noch 0) und beim zweiten 2 (i ist glecih 1) !
schreib dann lieber ++i. oder mach ne eigene zeile mit i++; (letzteres finde ich übersichtlicher und saueberer).
heimschmiede
-
Läuft alles normal..
i++ inkrementiert (also erhöht) die Variable erst nachdem die Schleife durchlaufen
wurde. Also ist i nach dem ersten Durchlauf 1. Ausgegeben wird bei dem erneuten
Durchlauf die 2, da i 1 ist und um eins erhöht ausgegeben wird.
Oder anders gesagt, i läuft bei einer Rundenzahl von 10 von 0 bis 9 während dieser
Wert um eins erhöht ausgegeben wird.Viele Grüsse,
lgn
-
thx leutz