2012-01-18 232 views

回答

15

這是一個三元條件表達式。

5

這就是所謂的三元條件運算符。不過,我不知道使用它的表達式是否有特定的名稱。

希望這會有所幫助!

+1

根據所有標準,它們都有一個特定的名稱,並且操作員也有一個特定的名稱 - *條件操作符*。 – 2012-01-18 09:20:58

+0

@DavidHeffernan:在旁註中:在C++和C社區中,三元運算符是一種常見拼寫,因爲只有一個三元運算符。 – 2012-01-18 09:58:27

+0

@DavidHeffernan:哎呀,我不小心忽略了你的答案,對不起。我添加了另一個,因爲我可以想象一些程序員不知道一元,二元和三元(或n元)的關係。 – 2012-01-18 10:04:34

1

我認爲它被稱爲「三元操作符」。

1

這是一個條件表達式,但是當您使用「?」被稱爲「有條件的運營商」。

+0

這不是一個聲明,而是一個表達! – 2012-01-18 09:05:01

+0

@BasileStarynkevitch - 更新! – 5StringRyan 2012-01-18 09:06:48

+0

@BasileStarynkevitch這是一個聲明,但其中包含一個表達式。 – 2012-01-18 09:35:50

1

它是一個條件表達式

爲了提高可讀性,把複雜的條件括號:

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

在你的情況,只是測試boolValue

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

爲了便於閱讀,除非它非常簡單(而且很多),請將條件和兩個受控表達式分別放在不同的行上,就像「if」一樣。 – 2012-01-18 09:16:01

10

的C,C++,C#和Java標準都使用以下條款:

  • 運算符是條件運算符
  • 這樣的表達式是條件表達式。

所以這些都是正式名稱。程序員通常更寬鬆地將其稱爲三元運算符,因爲它是具有3個操作數的唯一常用運算符。嚴格來說,它只是三元運算符a

6

運算符?:是「條件運算符」。

boolValue==true ? "true": "false"因此是一個條件表達式。

myString = (boolValue==true ? "true": "false")是一個也有賦值的條件表達式。

string myString = (boolValue==true ? "true": "false");是在聲明和賦值中使用條件表達式的語句。

?:通常被稱爲「三元操作符」。嚴格說來,這只是一個三元運營商,但因爲它是唯一一個在這些語言則指三元運算符是有效的,雖然它的應用基於事實的標籤分離,以自己的內部定義。在這裏我們給運營商加入到像x § y ¶ z語言歷時三者xyz作爲操作數那麼它也將是一個三元運營商,而有條件的經營者仍然是一個三元運算符,它將不再是三元運算符

2

我不確定這是C#社區中的常見說法,但在C和C++中,很多人通常將這個三元運算符稱爲。爲什麼?

  • 有一個單一的操作符期望單個操作數,如-x
  • 有二元運算符期望兩個操作數,如x+x
  • 只有一個三元運算符,它需要三個操作數,如x?y:z

「正確的」名稱是「條件運算符」,因爲結果取決於條件(最左邊的操作數)。

0

它被稱爲「三元」,據我所知,當我學習Java時(11/12年前),你做不到或者至少,老師根本沒有教這個 也許是這樣因爲有時代碼的可讀性較差...