滚动骰子和计数数组初学者

时间:2015-07-15 21:48:36

标签: java arrays

我想制作一个简单的程序,掷骰子1000次,并计算每个数字1-6出现的次数。它工作正常,但最后有一个错误。为什么会发生?

public class diceRollerCounter {
    public static void main(String[] args) {
        int dice [] = new int[7]; 
        for(int x = 0 ; x <1000; x++ ) {
            ++dice [(int)(Math.random()*6+1)];
        }
        System.out.println("Number       Frequency" );  
        for(int index = 0; 1 < dice.length ; index++) {
            System.out.println(index + "            " + dice[index]);
        }
    }
}

输出:

Number       Frequency
0            0
1            170
2            143
3            188
4            165
5            173
6            161
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 7
    at diceRollerCounter.main(diceRollerCounter.java:20)

1 个答案:

答案 0 :(得分:3)

for循环条件测试1是否小于dice.length,并且始终为true。但是你继续递增index直到它不在数组的末尾。

而是测试index是否小于dice.length

顺便提一下,您可能希望将index初始化为1,以便跳过频率为0的数字0的输出。