Warum funktioniert die for-schleife nicht mir ==



  • hi. ich habe eine for-schleife geschrieben, die mir einen text ausgibt, allerdings funktioniert ds so nicht.

    void gebeaus()
    {
    	for(int i = 1;i==5;++i) //i==5 scheint das Problem zu sein,mit i<=5 gehts. Warum???
    	cout << "ausgeben\n";
    }
    
    int main()
    {
    	gebeaus();
    	cout << endl;
    	return 0;
    }
    

    Danke



  • for-Schleife: for( Laufvariable; Abbrechen wenn Bedingung false; Irgendwas das nach dem Schleifendurchgang gemacht werden soll ) { }

    ➡ i=1 ➡ 1==5 ➡ true oder false?



  • Ahhh oh man richtig. I ist beim ersten durchlauf ==1, also ist i == 5 false und die schleife wird nicht durchlaufen. Ich interpretiere die schleifen Bedingung immer als eine Art if.
    Also wenn i==5, dann abruch, gehe aber davon aus, das die schleife bis dahin 5 mal durchläuft.
    Ich werds noch lernen...
    Danke



  • Kannst natürlich auch die Logig im Kopf "umdrehen". 😉

    for-Schleife: for( Laufvariable; Nächsten Schleifendurchlauf durchführen wenn Bedingung true; Irgendwas das nach dem Schleifendurchgang gemacht werden soll ) { }



  • In vielen büchern wird häufig der Begriff "abbruchbedingung" verwendet.
    Ich finde diese Wortwahl sehr verwirrend, denn ich dachte immer, wenn i==5 die "abbruchbedingung" ist, heißt das, wenn i den Wert 5 erreicht hat, breche die schleife ab.

    Nunja, jetzt muss ich diesen Begriff wieder aus meinem Kopf kriegen.
    Danke



  • robertko schrieb:

    Ich finde diese Wortwahl sehr verwirrend, denn ich dachte immer, wenn i==5 die "abbruchbedingung" ist, heißt das, wenn i den Wert 5 erreicht hat, breche die schleife ab.

    Stimmt, verwirrend. Ich denk einfach:
    - Weitermachen wenn Bedingung true.
    - Abbrechen wenn Bedingung false.



  • oder du tust for die bedingung n ! - Zeichen, dann gehts auch 😃



  • Ich würde es einfach Laufbedingung oder einfach nur Bedingung nennen.


Log in to reply