Du bist nicht angemeldet.

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 905

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