数组的输出不正确,java

时间:2016-11-04 03:12:43

标签: java arrays

下面的代码模拟骰子,我对两个骰子匹配的次数感兴趣,并且想法是首先打印0和1以显示这种情况发生的频率。然后打印应该包含何时获得" double"的数组,例如:第一个将包含3,这是第一个双精度之前的投掷数... ...用户将结束该程序。

public static void main(String[] args) {
    int limiteDoublons = Integer.parseInt(JOptionPane.showInputDialog("Nombre lancer: ").trim());
    int[] t = new int[limiteDoublons];
    int d1 = 0;
    int d2 = 0;
    int nbDoublons = 0;
    int nbLancer = 0;
    do {
        for(int x = 0; x<limiteDoublons;x++){
            //shuffle
            d1 = (int)(Math.random() * 7) + 1;
            d2 = (int)(Math.random() * 7) + 1;
            //si doublon print 1 et augmente le nbDoublon
            //donne la valeur du tableau suivante ;a valeur de nblancer
            if(d1 == d2) {
            System.out.print("1");
            nbDoublons++;
             t[x] = nbLancer;
            }
            else {
            System.out.print("0");
            }
            if ((nbLancer + 1) % 20 == 0) {
                System.out.println();
            }
            nbLancer++;
        }           
    } while (nbDoublons < limiteDoublons);

    System.out.println("\nOrdre des boulons: ");
    Arrays.sort(t);
    for (int i = 0; i < limiteDoublons; i++) {
        System.out.printf("%1$4d", t[i]);
        if ((i + 1) % 10 == 0)
            System.out.println();
    }
}
}

输出:

10001101100000000000
01001100000000000000
00000000000000000000
00101100010100110010
00000000000000100000
00001100010010000000
00000000100000000000
00001000000000000000
01000100000011000101
00000010001000000100
00000001000000000100
01010000000000100001
01100100100000001000
10000000001010010000
00001000000000000000
000000000100000
Ordre des boulons: 
   0   0   0   0   0   0   0   0   0   0
   0   7   8  21  25  69  74  78  94 105
 109 112 161 165 173 177 179 186 190 207
 217 221 223 234 241 242 245 248 256 260
 270 272 275 284 309

出乎意料的是0&#34; Ordre des boulons&#34;。我没有意义,我会在掷骰0时得到我的第一个双人......等等......

1 个答案:

答案 0 :(得分:1)

你得到了所有零,因为你正在索引x更新数组,这是 throws ,而不是双打。您应该使用nbDoublons代替:

t[nbDoublons] = nbLancer;
nbDoublons++;