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

05.07.2007, 22:45

! <---Was bewirkt das?

Ne kurze Frage: Den Zweck dieser if-Bedingung versteh ich nicht ganz

C-/C++-Quelltext

1
2
3
if (!Irgendwas)
{
}


Für was steht das " ! " in einem solchen Fall?
Hoffe ihr könnt mir behilflich sein :cry:
"Wenn es keine Milch gäbe, würde ich auf Kaffee verzichten."

rewb0rn

Supermoderator

Beiträge: 2 773

Wohnort: Berlin

Beruf: Indie Game Dev

  • Private Nachricht senden

2

05.07.2007, 22:51

für eine logische negierung, aus true wird false und aus false wird true.

3

05.07.2007, 23:24

Negierung, was? War nun im nachhinein doch gut das ich nachgefragt habe, wollte zuerst eigentlich nicht, da es mir ein bissl ":oops: " es nicht zu wissen.

So was ist eine Negierung und warum wird aus false true und aus true false?
"Wenn es keine Milch gäbe, würde ich auf Kaffee verzichten."

rewb0rn

Supermoderator

Beiträge: 2 773

Wohnort: Berlin

Beruf: Indie Game Dev

  • Private Nachricht senden

4

05.07.2007, 23:46

wie warum? weil das die funktion von diesem operator ist. er erwartet als argument eine variable vom typ bool und kehrt den wert um, also "negiert" ihn.

dev_null

Frischling

Beiträge: 38

Wohnort: Augsburg

Beruf: Application Developer

  • Private Nachricht senden

5

06.07.2007, 00:04

C-/C++-Quelltext

1
2
3
4
5
if (Irgendwas)
    cout << "Irgendwas ist wahr (TRUE)" << endl;

if (!Irgendwas)
    cout << "Irgendwas ist UNwahr (FALSE)" << endl;

somit musst du nicht else verwenden um eine Ausgabe für eine unwahre aussage auszugeben.

If erwartet wie schon erwähnt immer einen boolischen Wert (True oder False) True = Wahr (1) False = unwahr (0)

Wenn du eine Abfrage machst, fragst du ja immer ist (if) das und das so oder ist es, es nicht... Dann deine passende ausgabe.

Besser wäre das Beispiel um es anschaulicher zu machen:

C-/C++-Quelltext

1
if (i == 5)

Bedeutet wenn i == 5 ist mache bla wenn das nicht der fall ist musste noch nen else dahinter klatschen einfacher wäre aber das hier

C-/C++-Quelltext

1
if (!i == 5)

Bedeutet wenn i NICHT 5 ist mach bla
Think free!

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

6

06.07.2007, 07:16

Zitat von »"dev_null"«

C-/C++-Quelltext

1
if (!i == 5)

Bedeutet wenn i NICHT 5 ist mach bla

Das ist nicht richtig.
Das ! bezieht sich hier nur auf das i und kehrt nur dieses um. !5 == false, !0 == true.
Richtig wäre:

C-/C++-Quelltext

1
if (!(i == 5)) ...


oder einfacher

C-/C++-Quelltext

1
if (i != 5) ...

dev_null

Frischling

Beiträge: 38

Wohnort: Augsburg

Beruf: Application Developer

  • Private Nachricht senden

7

06.07.2007, 09:39

Ohh, mein Fehler klammern vergessen

hast recht...
Das wollte ich.

C-/C++-Quelltext

1
if (!(i == 5))
Think free!

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

8

06.07.2007, 13:13

Am besten schreibst du:

C-/C++-Quelltext

1
if ( ( i == 5 ) ^ 1 )


Oder ganz ohne bool'sche Operatoren:

C-/C++-Quelltext

1
if ( i ^ 5 )


:p
@D13_Dreinig

9

06.07.2007, 20:59

Danke :D
"Wenn es keine Milch gäbe, würde ich auf Kaffee verzichten."

Fred

Supermoderator

Beiträge: 2 121

Beruf: Softwareentwickler

  • Private Nachricht senden

10

06.07.2007, 21:39

Zitat von »"David_pb"«

Am besten schreibst du:

C-/C++-Quelltext

1
if ( ( i == 5 ) ^ 1 )


Oder ganz ohne bool'sche Operatoren:

C-/C++-Quelltext

1
if ( i ^ 5 )


:p


Da stand doch vorhin noch was anderes :)

Werbeanzeige