2014-10-30 82 views
-2

雖然我正嘗試瞭解C#代碼塊,I'm問自己請問這個代碼表示:提前這是什麼意思在C#y - = y> 9? 9:0;

y -= y > 9 ? 9:0; 

感謝

+4

什麼方面它穿上」你明白嗎? – Servy 2014-10-30 18:34:26

+0

正在閱讀C#中的代碼塊。想要了解它,但並不知道這是什麼。到現在。感謝你們所有人。 – barbareos12 2014-10-30 18:41:50

回答

11

是這段代碼是有點混亂。

基本邏輯讀取這樣的:

if y is greater than 9 
    subtract y by 9 
otherwise 
    subtract y by 0 

這也等同於以下代碼:

if (y > 9) { 
    y = y - 9; 
} 
else { 
    y = y - 0; 
} 

的其他情況,當然在這種情況下是多餘的,但我做了一個直譯。

如需進一步閱讀,可以查詢here。祝你好運!

+0

是的,我在這裏找到[鏈接](http://en.wikipedia.org/wiki/Luhn_algorithm) – barbareos12 2014-10-30 18:44:53

+0

@ user3240743好東西!如果您的答案正確,請不要忘記標記答案! – phantom 2014-10-30 18:47:08

+0

@phantom您可能想要在MSDN上添加三元運算符頁面的鏈接:http://msdn.microsoft.com/en-us/library/ty67wk28.aspx – furkle 2014-10-30 18:55:28

2

如果y > 9然後從y減去9否則減去零(做沒有)。

1

正是在這裏,我想:

if(y>9) 
    y=y-9; 
else 
    y=y-0; 
0

這使得使用? operator在C#。 ?條件運算符(:)返回取決於布爾表達式的值的兩個值中的一個並作爲評價:

if(y>9) 
    y-= 9; 
else 
y-= 0; 
2

首先評價:

(y > 9) 

如果這是真的,則表達式求值至9

如果此爲假則評價爲0。

該評價結果中,然後從y的當前值中減去。

0
  • - =是減法運算符。
    y -= (expression)y意味着減去(表達),並存儲在y

  • 該值? :是三元操作符。這是一種編寫具有條件值的表達式的方法。
    (expression) ? x : y裝置評估,以x如果(expression)是真實的,它的計算結果y如果(expression)是假

0
y -= something; 

意味着

y = y - something; 

「?」是一個三元運算符。它的語法是:

condition ? true_expression : false_expression 

因此,該行相當於是:

if (y > 9) 
    y = y - 9; 
else 
    y = y - 0; // Of course, this wouldn't make sense written like this. 

該行的簡潔明瞭的版本可能是:

if (y > 9) 
    y -= 9; 
+0

感謝您的答案。現在我懂了。 – barbareos12 2014-10-30 18:41:00