我创造了一个"交易或没有交易"学校的代码分配。我正在尝试创建26" case"在我的"案例中的对象"使用for循环的arraylist,但是当我尝试测试我的代码时,它不会让我访问索引13之上的任何内容。我得到一个arraylist超出界限错误。
public void createCases()
{
int amount;
int counter1 = 1;
int amountFound;
int allzero;
//Make a list of possible winning amounts
int amounts[] = new int[26];
for(int i = 0; i <= 25; i++) {
amounts[i] = counter1;
counter1++;
}
//Copy the winning amounts from amounts to amountsRandom... randomly.
int amountsRandom[] = new int[26];
for(int i = 0; i <= 25; i++) {
do {
amountFound = (int)(Math.random() * 25);
} while(amountFound == 0);
amountsRandom[i] = amounts[amountFound];
amountFound = 0;
}
//Take the amounts in index order and make them part of the case objects in the array list.
for(int i = 0; i <= 25; i++) {
cases.add(new Case(i++ , amountsRandom[i-1]));
}
}
我在这个方法之外声明了我的案例arraylist,所以整个班级都可以访问它。
答案 0 :(得分:4)
您正在递增i
两次:一次在for
循环中,一次在构造函数调用中。
答案 1 :(得分:3)
在for循环中,将case对象添加到案例arraylist
for(int i = 0; i <= 25; i++) {
cases.add(new Case(i++, amountsRandom[i-1]));
}
你正在调用i ++两次,所以我会在每个循环中迭代两次。因此,它只循环13次而不是26次。您可能希望将其更改为new Case(i + 1, amountsRandom[i-1])