for循环中的数组,在for循环内 - 抛出ArrayIndexOutOfBoundsException

时间:2015-03-31 04:11:41

标签: java arrays for-loop coin-flipping

我想将5个硬币作为一组翻转 - 1024次并计算我得到多少尾巴。但是我得到ArrayIndexOutOfBoundsException:4错误。

这是因为当第一个循环第一次运行时,第二个循环中的j没有被重置吗?如果是这样,那我该怎么办呢?

public class Q2 {

    public static void main(String[] args) {

        int totalTails, totalHeads;
        int coin[];

        coin = new int[4];

        totalHeads = 0;
        totalTails = 0;

        for (int i = 0; i < 1024; i++) {
            for (int j=0; i<5; j++){
            coin[j] = 1 + (int) (Math.random() * (2 - 1 + 1));
                if (coin[j] == 1) {
                    totalHeads++;
                }
                    else {
                        totalTails++;
                    }
                }
        }
        System.out.println("Number of  tails were obtained = " + totalTails);
        System.out.println("Number of heads were obtained = " + totalHeads);
    }
}

3 个答案:

答案 0 :(得分:1)

for (int j=0; i<5; j++){

应该是j <5

coin = new int[4];

应该是int [5]

答案 1 :(得分:0)

更改此行:

for (int j=0; i<5; j++){

到这一行:

for (int j=0; j<4; j++){

你在coin

的界限范围内

如果使用length属性会更好。喜欢

for (int j=0; j<coin.length; j++){

答案 2 :(得分:0)

请将for (int j=0; i<5; j++)更改为for (int j=0; j<5; j++),您的代码应该可以正常使用。