2014-06-28 27 views
5
import java.util.Random; 

public class DemoArrayElement { 

    public static void main(String arg[]) { 
     Random rand = new Random(); 
     int[] freq = new int[7]; 

     for (int roll = 1; roll < 10; roll++) { 
      ++freq[1 + rand.nextInt(6)]; 
     } 
     System.out.println("FACE\tFREQUENCY"); 

     for (int face = 1; face < freq.length; face++) { 
      System.out.println(face + "\t\t" + freq[face]); 
     } 
    } 
} 

有人可以請解釋我這++freq[1+rand.nextInt(6)];代碼行。我們如何使用數組元素作爲java中的計數器?

回答

4

該程序模擬滾動模具10次。數組freq用於計算每個面值的滾動頻率 - 索引代表面值,滾動次數表示內容的滾動次數。因此,例如freq[3]包含滾動次數3

讓我們來看看++freq[1+rand.nextInt(6)];並把它拆開:

rand.nextInt(6)調用Java的隨機數發生器(一java.util.Random實例),並要求它0和5(含)之間的均勻分佈的隨機數。加上1就可以得到一個隨機的面值 - 一個介於1和6之間的數字。

如上所述,在freq數組(freq[1+rand.nextInt(6)])中訪問該索引將返回此面值爲隨機遇到。由於我們再次遇到它,這個數字會增加(++運算符)。

2

frec是一個包含7個數字元素的數組。

++freq[1+rand.nextInt(6)];表示預先增加數組中的隨機元素。


例如:如果該數組中的第二個元素是5

++freq[1];將使它6

+0

但是,當我運行這個程序頻率[face]工作作爲一個計數器... – Prakash

+1

重要的是要注意,它不會碰到'freq'的第0個元素,因爲'1 + rand.nextInt(6)生成1到6之間的隨機數。 – Ben

相關問題