2012-01-18 6 views

risposta

15

È un'espressione condizionale ternaria.

5

Questo è chiamato il ternario operatore condizionale. Non so se le espressioni che lo usano abbiano un nome specifico, comunque.

Spero che questo aiuti!

+1

Hanno un nome specifico in base a tutti gli standard e l'operatore ha anche un nome specifico: * l'operatore condizionale *. –

+0

@DavidHeffernan: in un sidenote: nella comunità C++ e C, l'operatore ternario_ è un'ortografia comune, poiché esiste un solo operatore ternario. –

+0

@DavidHeffernan: Oops, ho accidentalmente ignorato la tua risposta, mi dispiace. Ne ho aggiunto un altro, come posso immaginare che alcuni programmatori non conoscano la relazione tra unario, binario e ternario (o n-ari). –

1

Penso che si chiami "operatore ternario".

1

Questa è un'espressione condizionale, ma quando si utilizza "?" è chiamato "Conditional Operator".

+0

Non è un'affermazione, ma un'espressione! –

+0

@BasileStarynkevitch - Aggiornato! – 5StringRyan

+0

@BasileStarynkevitch è un'istruzione, anche se include un'espressione. –

1

È un'espressione condizionale .

Per facilitare la lettura, mettere la condizione complessa tra parentesi:

string myString = (somecond)?"true":"false"; 

Nel tuo caso, basta testare le boolValue con

string MyString = boolValue?"true":"false". 
+0

Per la leggibilità, a meno che non sia molto banale (e molti lo siano), metti la condizione e le due espressioni controllate su linee separate, proprio come faresti per un 'se'. –

10

La C, C++, C# e Java standard utilizzano tutti i seguenti termini:

  • L'operatore è l'operatore condizionale .
  • Tale espressione è un'espressione condizionale .

Quindi quelli sono nomi ufficiali. I programmatori spesso si riferiscono più liberamente ad esso come l'operatore ternario poiché è l'unico operatore comunemente utilizzato con 3 operandi. A rigor di termini è solo un operatore ternario.

6

L'operatore ?: è "l'operatore condizionale".

boolValue==true ? "true": "false" è quindi un'espressione condizionale.

myString = (boolValue==true ? "true": "false") è un'espressione condizionale che ha anche un'assegnazione.

string myString = (boolValue==true ? "true": "false"); è un'istruzione che utilizza un'espressione condizionale in una dichiarazione e un'assegnazione.

?: viene spesso definito "operatore ternario". Rigorosamente è solo un operatore ternario, ma poiché è l'unico in quelle lingue che si riferisce a l'operatore ternario è valido anche se applica un'etichetta basata su un fatto separato dalla propria definizione interna.Dove siamo di aggiungere un operatore di un linguaggio come x § y ¶ z che ha avuto tutti e tre x, y e z come operandi allora sarebbe anche un operatore ternario e mentre l'operatore condizionale sarebbe ancora un operatore ternario, sarebbe più essere l'operatore ternario.

2

Non sono sicuro che questo sia un linguaggio comune nella comunità C#, ma in C e C++ molte persone chiamano comunemente questo l'operatore ternario. Perché?

  • Ci sono operatori unari che si aspettano un singolo operando, come in -x.
  • Esistono operatori binari che si aspettano due operandi, come in x+x.
  • C'è solo un operatore ternario, che si aspetta tre operandi, come in x?y:z.

Il nome "corretto" è "l'operatore condizionale", poiché il risultato dipende dalla condizione (l'operando più a sinistra).

0

Si chiama "ternario" e per quanto mi ricordo, quando ho imparato Java (11/12 anni fa), non si poteva fare O O almeno, gli insegnanti non stavano insegnando questo a tutti Forse è tutto perché a volte il codice è meno leggibile ...

Problemi correlati