c# - titel - title tag länge




Wie arbeitet der ternäre Operator? (8)

Als ich neu in C ++ war, fand ich, dass es half, dieses Konstrukt wie folgt zu lesen:

Boolean isValueBig = if condition ? then x else: y;

(Beachten Sie, dass dies kein gültiger Code ist. Es ist genau das, was ich selbst gelernt habe, um in meinem Kopf zu lesen.)

Bitte demonstrieren Sie, wie der ternäre Operator mit einem regulären if / else-Block arbeitet. Beispiel:

Boolean isValueBig = value > 100 ? true : false;

Exact Duplicate: Wie verwende ich den ternären Operator?


Der Unterschied zwischen der ternären Operation und if / else besteht darin, dass der ternäre Ausdruck eine Anweisung ist, die einen Wert ergibt, während if / else nicht gilt.

Um Ihr Beispiel zu verwenden, indem Sie von der Verwendung eines ternären Ausdrucks zu if / else wechseln, können Sie diese Anweisung verwenden:

Boolean isValueBig = null;
if(value > 100)
{ 
    isValueBig = true 
}
else
{
    isValueBig = false;
}

In diesem Fall entspricht Ihre Aussage jedoch dieser:

Boolean isValueBig = (value > 100);

Wie auf der Seite " ?: Operator MSDN " angegeben, "gibt der bedingte Operator (? :) abhängig vom Wert eines booleschen Ausdrucks einen von zwei Werten zurück."

Sie können also den ternären Operator verwenden, um mehr als nur boolesche Werte zurückzugeben:

   string result = (value > 100 ) ? "value is big" : "value is small";

PHP Beispiel

<?php

  // Example usage for: Ternary Operator
  $action = (empty($_POST['action'])) ? 'default' : $_POST['action'];

  // The above is identical to this if/else statement
  if (empty($_POST['action'])) {
    $action = 'default';
  } else {
    $action = $_POST['action'];
  }

?>

"Der Ausdruck ( Ausdruck1 )? ( Ausdruck2 ): (Ausdruck3) ergibt Ausdruck2, wenn Ausdruck1 TRUE ergibt , und Ausdruck3, wenn Ausdruck1 FALSCH ergibt ."

PHP-Dokumentation zu Vergleichsoperatoren


Boolean isValueBig;

if (value > 100)
{
   isValueBig = true;
}
else 
{
   isValueBig = false;
}

Boolean isValueBig;

if(value > 100) { isValueBig = true; } else { isValueBig = false; }

Schlechtes Beispiel, weil du einfach schreiben kannst

Boolean isValueBig = value > 100 ? true : false;

wie:

bool isValueBig = value > 100

Darüber hinaus haben alle anderen bereits darauf geantwortet. Ich würde nicht empfehlen, ternäre Operatoren zu verwenden, um bool-Werte zu setzen, da das, was Sie gerade auswerten, bereits ein boolescher Wert ist.

Ich weiß, es war nur ein Beispiel, aber es war es wert, darauf hinzuweisen.


Stellen Sie sicher, dass Sie keine Typen in echten / falschen Teilen in Java mischen. Es erzeugt seltsame Ergebnisse :-(





ternary-operator