2013-04-13 153 views
-2
private void printRandoms() { 
    int value; 
    for (int i = 2; i < 8; i = i + 2) { 
     value = (int) (Math.random() * 2 + 3); 
     System.out.print(value + " "); 
    } 
    System.out.println(); 
} 

有人可以向我解釋爲什麼有2個可能的輸出,爲什麼他們是3,3,4和4,3,4。還有,這裏i = i + 2是什麼意思?Java For循環輸出

+0

如果您有調試器,請用它來停止程序,探索變量值。或者你可以使用'System.out.println(「i =」+ i)''和類似的語句來輸出中間值。 –

回答

3

Math.random()產生0和1之間(不包括1)一個隨機浮點數。你乘以2,所以現在的值在0和2之間(不包括2)。然後你加3,所以這個值在3到5之間(不包括5)。所述(int)鑄造失去十進制的信息,所以留下的可能性是3個4

i = i + 2裝置設定i到表達i + 2,即,其增加了2至i

+0

你能解釋爲什麼它會給我輸出3 3 4和4 3 4嗎? –

+0

爲什麼每個可能的輸出中有3個數字? –

+0

,其通過循環的i'的'值僅是2,4和6。當'i'達到8,'for'循環條件是'FALSE'和環路結束。 – rgettman