我们如何在java中使用数组元素作为计数器?

时间:2014-06-28 11:06:07

标签: java arrays

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)];行代码。

2 个答案:

答案 0 :(得分: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)])中的此索引将返回此面值随机遇到的次数。由于我们刚刚再次遇到它,这个数字会递增(++运算符)。

答案 1 :(得分:2)

frec是一个包含7个数字元素的数组。

++freq[1+rand.nextInt(6)];表示从数组中预先增加一个随机元素。


示例:如果数组中的第二个元素是5

++freq[1];会将其6