我想将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);
}
}
答案 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++)
,您的代码应该可以正常使用。