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

vab

Frischling

  • »vab« ist der Autor dieses Themas

Beiträge: 18

Wohnort: Hamburg

Beruf: Kfz-Meister

  • Private Nachricht senden

1

09.10.2014, 10:54

Bedingungsoperator

Hallo zusammen,
haben in einenBuch über C++ diese Bedingungsoperator gefunden aber keine Erklärung dafür.
Meine Frage: Was soll das mit dem Fragezeichen und wie wird dieses behandelt?

z = (x > y) ? x : y;


Danke im voraus.

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

2

09.10.2014, 11:08

Stell es dir so vor:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
type z, a, b;
int x, y;

z = foo ( x, y, a, b );
z = ( x > y ) ? a : b;

type foo ( int x, int y, type a, type b )
{
    if ( x > y )
        return a;
    else
        return b;
}


Das Fragezeichen ist lediglich Syntax, damit man sieht, dass es sich um eine Frage handelt. Ausgesprochen entspricht das:
Wenn x größer ist als y, nimm a, sonst nimm b.
Oder:
Wenn x größer ist als y, dann setzt z auf a, sonst auf b.
Oder:
z bekommt den Wert von a, wenn x größer ist als y, sonst bekommt es den Wert von b.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

birdfreeyahoo

Alter Hase

Beiträge: 756

Wohnort: Schorndorf

Beruf: Junior Software Engineer

  • Private Nachricht senden

3

10.10.2014, 20:01

Dazu findest du im Internet auch schwer etwas weil Google mit den Sonderzeichen nicht so klar kommt. Stichwort ist hier der ternäre Operator.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

4

10.10.2014, 20:55

Eigentlich heißt das Ding Conditional Operator ;)

Der Conditional Operator ist der einzige ternäre Operator in C++ und so hat sich wohl irgendwie diese Bezeichnung entwickelt. Aber wir sagen zum + operator ja auch nicht "der binäre Operator"... :P

5

10.10.2014, 21:34

Hm. Aber es gibt doch auch andere binäre Operatoren außer +.

Architekt

Community-Fossil

Beiträge: 2 481

Wohnort: Hamburg

Beruf: Student

  • Private Nachricht senden

6

10.10.2014, 21:36

Hm. Aber es gibt doch auch andere binäre Operatoren außer +.

Und dot sagte, dass ?: der einzige Ternäre Operator in C++ ist. Was heißen mag, dass es generell auch mehrere gibt. Ich kenne allerdings keine weiteren. Vielleicht macht er ja noch einen Punkt und klärt uns auf. ;)
Der einfachste Weg eine Kopie zu entfernen ist sie zu löschen.
- Stephan Schmidt -

Werbeanzeige