Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

07.03.2018, 14:00

C++ Anfängerfrage - Vergleichsoperatoren im Bedingungsteil einer for-Schleife

Hallo,

ich arbeite mich grad im Selbststudium mühsam aber motiviert an C++ heran. Nun steh ich vor folgender Situation die mir nicht so ganz in den Kopf will.

Banales Beispiel:

C-/C++-Quelltext

1
2
3
4
5
    for (int a = 0, b = 0; a <= 10 && b <= 20; a++, b++)
    {
        cout << "a: " << a;
        cout << " b: " << b << endl;
    }


Bei diesem Beispiel, zählt er mir beide Variablen bis 10 und lässt es dann gut sein. Soweit so gut, das wollte ich ja auch.

Jetzt kommt aber meine Frage:
Wenn ich den Vergleichsoperator && auf || ändere, dann zählt er dennoch bis 20.

Das verstehe ich nicht. Auch wenn ich ODER als Vergleichsoperator angebe, müsste er doch spätestens bei (a=)10 anhalten, denn auch da müsste er mir false zurückwerfen und somit die for-Schleife beenden.

Ich komm einfach nicht dahinter warum es mit || nicht klappt. Hab ich einen Denkfehler oder funktioniert || hier gar nicht?

Bitte um Hilfe / Rat / Erklärung.

Schöne Grüße.

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

2

07.03.2018, 14:08

Das || heißt, dass nur eine der Bedingungen erfüllt sein muss(die eine ODER die andere). Bei einem && müssen beide erfüllt sein(die eine UND die andere).
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

3

07.03.2018, 14:47

Bei der Abfrage " A && B "
würde er die Vergleichsoperation mit NICHT ERFÜLLT früh abbrechen, wenn A false ist, ohne auf B zu schauen

Bei der Abfrage "A || B "
würde er die Bedingung als ERFÜLLT erkennen (und B ignorieren), wenn A true ist, ansonsten geht es bei B weiter

Werbeanzeige