Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Ternärer Operator! wie in Delphi?


JRegier - Fr 08.07.05 10:41
Titel: Ternärer Operator! wie in Delphi?
Gibts in Delphi diesen Ternären Operator wie in Java?

Also:

Bedingung ? mach das : ansonsten mach das


Gausi - Fr 08.07.05 10:50

Meinst du sowas:

Delphi-Quelltext
1:
2:
3:
4:
if Bedingung then
  machwas
else
  mach was anderes;

Du musst nur das ? durch ein then und das : durch ein else ersetzen.


JRegier - Fr 08.07.05 11:07

user profile iconGausi hat folgendes geschrieben:
Meinst du sowas:

Delphi-Quelltext
1:
2:
3:
4:
if Bedingung then
  machwas
else
  mach was anderes;

Du musst nur das ? durch ein then und das : durch ein else ersetzen.


Na ja aber ein if muß doch davor?


Christian S. - Fr 08.07.05 11:25

Der ternäre Operator leistet ja auch mehr, als nur eine Anweisung auszuführen. Er gibt ja auch noch einen Wert zurück, da wird die entsprechende if-Anweisung noch ein wenig größer.


JRegier - Fr 08.07.05 12:25

user profile iconChristian S. hat folgendes geschrieben:
Der ternäre Operator leistet ja auch mehr, als nur eine Anweisung auszuführen. Er gibt ja auch noch einen Wert zurück, da wird die entsprechende if-Anweisung noch ein wenig größer.


Was den jetzt gibts in Delphi der Ternäre Operator oder nicht?


AXMD - Fr 08.07.05 12:40

Ich hab kA, was ein ternärer Operator sein soll, aber es gibt auch noch case

AXMD


ManuelGS - Fr 08.07.05 12:58

Wäre echt cool, wenn da jemand Licht ins Dunkel bringen könnte.
Ich frage mich auch schon länger, was Anweisungen wie funktion1 xor funktion2; bedeuten sollen!?


BenBE - Fr 08.07.05 13:13

Ternäre Operatoren sind Operatoren, die 3 Argumente benötigen (sagt ja schon der Name). Verwendet wird das z.B. um Inline-If-Abfragen zu realisieren:


PHP-Source:
1:
$ergebnis = 'Das Ergebnis ist ' . ($resultval (*!=0*) ? 'ungleich' : 'gleich') . ' null.';                    


In Delphi säh der gleiche Source etwas umfangreicher aus:


Delphi-Source für <=D6:
1:
2:
3:
4:
If ResultVal <> 0 Then
    Ergebnis := 'Das Ergebnis ist ungleich null.'
else
    Ergebnis := 'Das Ergebnis ist gleich null.';


Ab Delphi 7 gibt es dafür aber eine extra Funktion


Delphi-Source für >=D7:
1:
Ergebnis := 'Das Ergebnis ist ' + IfThen(ResultVal <> 0'ungleich''gleich') + ' null.';                    


HTH.