2013-03-30 24 views

回答

1

這是三元運算符。它在?之前評估表達式,如果它是真的,則返回:之前的值。否則,返回:之後的值。

它基本上是表達以下if/else語句的一個簡潔的方式:

if (a>b) 
{ 
    return a; 
} 
else 
{ 
    return b; 
} 
+0

我瞭解檢查,看看是什麼之前,三元運算符是真實的一部分,但爲什麼一個前:? < - (這是一個普通的問號,順便說一句!) – angrytoad

+0

@angrytoad因爲這是你把值返回的地方,如果表達式是真的。 – ApproachingDarknessFish

+0

啊,我明白了。非常感謝! – angrytoad

1

它被稱爲三元運算符:

http://www.cplusplus.com/articles/1AUq5Di1/

你能想到的return (a > b) ? a : b;爲:

if(a>b) { 
    return a; 
} else { 
    return b; 
} 

Keep記住三元運算符實際上會產生一個值,它是a或b(這就是爲什麼它在return聲明中起作用的原因)。

所以你可以做這樣的事情

myType c = (a>b) ? a : b,這大致相當於

myType c; 
if(a > b) { 
    c = a; 
} else { 
    c = b; 
}