zur vorherigen Seite   zum Inhaltsverzeichnis   zur nächsten Seite

Antwort:

If-Else Absoluter Wert

Eine if-Anweisung kann verwendet werden um einen absoluten Wert zu berechnen:

if ( wert < 0 )
  abs = -wert;
else
  abs = wert;

Das ist umständlich für so eine kleine Sache. Die folgende Anweisung macht das gleiche in einer Zeile:

abs = (wert < 0 ) ? -wert : wert ;

Diese Anweisung verwendet einen konditionalen Operator. Die rechte Seite des Gleichheitszeichens = ist ein konditionaler Ausdruck. Der Ausdruck wird ausgewertet um einen Wert zu ermitteln, der dann der Variablen abs zugewiesen wird.

Hier ist ein Beispiel:

double wert = -34.569;
double abs;

abs = wert < 0 )   ?   -wert : wert ;
      -------------       ------
      1. Bedingung         2. Das wird ausgewertet
         ist true               zu +34.569

----
3. Der Wert +34.569 wir der Variablen abs zugewiesen.

Der konditionale Operator wird wie folgt verwendet:

true-or-false-Bedingung ? wert-if-true : wert-if-false;

Hier ist wie es funktioniert:

  1. >Die true-or-false-Bedingung wird zu true oder false ausgewertet.
  2. Dieser Wert wählt eine der Möglichkeiten aus:
    • Wenn die true-or-false-Bedingung true ist, dann wird der Ausdruck zwischen dem Fragezeichen ? und dem Doppelpunkt : ausgewertet.
    • Wenn die true-or-false-Bedingung false ist, dann wird der Ausdruck zwischen dem Doppelpunkt : und dem Semikolon ; ausgewertet.

Frage 2:

Gegeben:

int a = 7, b = 21;

Was ist der Wert von:

a > b ? a : b

(Denkt daran, dass der gesamte Ausdruck nur zu einem einzigen Wert ausgewertet wird.)