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 0

    dann 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


Anmelden zum Antworten