2012-10-18 137 views
-1

可能重複:
What is a Question Mark 「?」 and Colon 「:」 Operator Used for?
Question mark in java code什麼是「?」和「:」符號意味着在一行java代碼中?

我寫代碼的RBG到HSV轉換器。 我有這條線:

var d = (r==minRGB) ? g-b : ((b==minRGB) ? r-g : b-r); 

我真的不明白什麼「?」和「:」在這裏表示。

+9

'變種D'?它不是java – gefei

+0

難道你是在談論JavaScript嗎? –

+0

其javascript。我正在寫入rgb到java中的hs​​v轉換器。 – Parvesh

回答

2

及其Ternary Operator

C = condition? A : B 

相當於

if (condition){ 
    C= A; 
} else{ 
    C= B; 
} 

它還支持嵌套即C = condition1? A : condition2?D:E,這相當於

if (condition1){ 
    C=  A; 
} else if (condition2){ 
    C=  D; 
} else{ 
    C= E; 
} 
2

這在java中被稱爲三元運算符。

基於java tutorial

另一個條件運算符是:?,它可以被看作是速記的if-then-else語句(在本節課的流程控制語句中討論)。該運算符也稱爲三元運算符,因爲它使用三個操作數。

如果第一個表達式結果爲true,則將第二個操作數指定爲值,否則將第三個操作數指定爲值。

+0

它的JavaScript問題。 –

+1

@喬伊:問題標題說java,這就是爲什麼這個答案。如果問題在javascript上,我很抱歉! – kosa

+0

好的。我很困惑'var' +1。 :) –

0

其所謂ternary operator(:): -

System.out.println(condition? value1 : value2); 

上述表達式的計算,如: -

if (condition) { 
    System.out.println(value1); 
} else { 
    System.out.println(value2); 
} 
1

這意味着

if (r==minRGB) 
    d = g-b 
else 
    if(b==minRGB) 
    d=r-g 
    else 
    d=b-r 
0

在基於C語言中,它是指: ? :

它基本上是一個if-else的短手。

3

這是爲了使條件的一小段路:

Condition ? Statment1 : Statement2; 

手段

If (Condition) {Statement1} else {Statement2} 
+0

這個答案如何得到upvotes?這完全錯了。 Teriary運算符不適用於java – gefei

+2

中的語句錯誤?你確定 ? –

0

它的工作類似,如果比其他

if (r==minRGB) 
    d = g-b; 
}else{ 
    if (b==minRGB) 
    { 
     d = r-g; 
    }else{ 
     d = b-r; 
    } 
} 
相關問題