2014-05-20 63 views
-2

以下行可以做什麼?有人能幫我在「普通」代碼中寫這行嗎?冒號「:」和問號「?」是什麼?運營商呢?

int change = (Math.random() - 0.5 < 0 ? -5 : 5); 
+3

這是_is_正常代碼。有幾個不同的事情正在進行 - 你能澄清一下你不明白的東西嗎? – yshavit

+0

查閱「三元操作符」。 – pennstatephil

+0

它以基本相等的比例將變化設置爲5或-5。可能讓你困惑的部分是[三元語句](http://en.wikipedia.org/wiki/%3F :) - 。這只是一條語句。 – thegrinner

回答

4

這是一個三元運算它的工作方式是:

condition ? (things to do if true) : (things to do if false); 

在你的代碼,它的作用是:

if value of Math.random() - 0.5 < 0 
    then assign change a values of -5 
else 
    assign change a value of 5. 
+0

更確切地說,它實際上是一個_expression_評估爲「條件? (值如果爲真):(如果爲假值)'。它們中的任何一個都不會在此代碼中更改「更改」的值;相反,整個三元表達式計算爲一個表達式或另一個表達式(在本例中爲'-5'或'5'),另外,'change ='部分將該值分配給'change'。 – yshavit

1

這一行需要一個隨機數(0之間1)並減去0.5。如果該值小於0,則更改設置爲-5,否則爲5.

int change; 
if((Math.random() - 0.5) < 0) 
{ 
    change=-5; 
} 
else 
{ 
    change=5; 
}