2013-03-15 226 views
-5

在我的書中有一段我不明白的代碼。它是可悲的是沒有解釋它做什麼...C++這段代碼做了什麼?

int big = 200; 
int small = 100; 
int max = (a <= b) ? big : small; 

所以我知道的是,有3個變量(笑...)。
整數'max'得到的值很大,但是爲什麼? (a <= b)顯然是一個條件,但'?'是什麼?和':'呢?

我希望有人能解釋我...

+5

http://www.cplusplus.com/articles/1AUq5Di1/ – NPE 2013-03-15 19:53:11

+0

omfg爲什麼我得到這些倒票?它沒有在我的書中解釋過,當我使用它時沒有任何用處! – 2013-03-15 19:57:13

+2

您是否嘗試在Stack Overflow上搜索'[C++]「?」'? – crashmstr 2013-03-15 19:58:40

回答

5

?ternary operators

int max = (a <= b) ? big : small; 

一樣的是

int max; 
if(a <= b) max = big; 
else max = small; 
4

如果a小於或等於b那麼max是等於大,否則最多等於小。欲瞭解更多檢查Ternary Operator

3

這是一樣的:

if(a <= b){ 
    max = big; 
} 
else{ 
    max = small; 
} 
2

這是相同的:

int big = 200, small = 100, max; 

if (a <= b) 
    max= big; 
else 
    max = small; 
4

?:是有條件的經營者。

int max =(a<=b) ? big : small 

意味着如果a<=b爲真,則max=big i.e. 200其他max=small i.e. 100

一般語法:

condition ? value_if_true : value_if_false 
+0

(Pedantic)更準確地說,'?'和':'一起是條件賦值操作符。 http://en.wikipedia.org/wiki/%3F:#Conditional_assignment – 2013-03-15 20:00:39

+0

謝謝@ william.berg給你建議:) – Sachin 2013-03-15 20:04:19