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

28.02.2017, 18:48

Problem mit if und bool-Kombination

Hey,
ich habe ein recht allgemeines Problem mit C++, wo ich anscheinend einen Mechanismus von C++ nicht ganz verstanden habe. Hier mal einen Beispielcode, was ich meine:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
    bool b1;
    bool b2;
    bool b3;
    bool b4;


    if (b1 == true)
        b2 == true;
    if (b1 == true)
        b3 == true;
    if (b3 == true)
        b4 == true;

Der Code macht etzt natürlich gar keinen Sinn, aber ich hoffe man versteht jetzt, was ich meine. Wenn eine bool true wird, wird eine andere true, die dann wiederum irgendetwas auslöst. Das hat bei einem Projekt jedoch nicht geklappt und mittlerweile glaube ich deshalb, das dies aus irgendeinem Grund nicht möglich ist. Ich wäre dankbar, wenn jemand sagt, ob dies doch geht und wenn nicht, was vielleicht eine Möglichkeit ist, so etwas zu umgehen. In diesem Fall kann ich dann auch noch den Quellcode von dem Momentanprojekt, wegen dem ich auf den Fehler gekommen bin, geben. Der wäre hier jedoch ein wenig unnötig und lang gewesen.
Danke :)

2

28.02.2017, 18:52

Da kann ja auch nicht viel passieren, da nie etwas geändert wird.
== ist der Vergleichsoperator, = ist zum Zuweisen.
Du willst folgendes tun:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
 bool b1;
    bool b2;
    bool b3;
    bool b4;


    if (b1 == true)
        b2 = true;
    if (b1 == true)
        b3 = true;
    if (b3 == true)
        b4 = true;

3

28.02.2017, 19:13

Da kann ja auch nicht viel passieren, da nie etwas geändert wird.
== ist der Vergleichsoperator, = ist zum Zuweisen.
Du willst folgendes tun:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
 bool b1;
    bool b2;
    bool b3;
    bool b4;


    if (b1 == true)
        b2 = true;
    if (b1 == true)
        b3 = true;
    if (b3 == true)
        b4 = true;

Da eine Bedingung sowieso immer auf "true" geprüft wird, kannst du dir das == true auch sparen. Solltest auf auf == false prüfen wollen stellst du den ! operator voran.

C-/C++-Quelltext

1
2
3
if (b1)  // prüft ob b1 == true
//...
if (!b2) // prüft ob b2 == false

4

28.02.2017, 19:22

Okay... Ich habe mal wieder viel zu kompliziert gedacht danke vielmals ^^

Werbeanzeige