【发布时间】:2016-04-12 03:10:58
【问题描述】:
我不断收到越界错误。我想检查重复项。在此之后还有更多内容,但现在最重要的是它说我得到了一个 OutOfBoundsException 和 ArrayList, index:1 size:1
ArrayList lottery = new ArrayList();
for (int n = 0; n < 4;) {
int number = 0;
int first = 0;
int value = 0;
boolean found = false;
first = (int) (Math.random() * 42 + 1);
lottery.add(first);
count[first]++;
for (int i = 1; i < 6;) {
number = (int) (Math.random() * 42 + 1);
for (int k = 0; k < 6;) {
// here value = lottery.get(k);
if (value == number) {
found = true;
} else {
found = false;
}
if (found == true) {
number = (int) (Math.random() * 42 + 1);
} else {
k++;
}
}
System.out.println("number " + (i + 1) + ": " + number);
if (found == false) {
lottery.add(number);
count[number]++;
i++;
}
}
}
【问题讨论】:
-
很清楚。 它说数组列表是 index:1 size: 1
-
n 永远不会增加,顶部 for 循环永远不会完成
-
它只是稍后在代码中执行。而k从1开始,我忘记改了。
-
我已经格式化了你的代码,因为它很难阅读。如果您不使用 IDE,我建议您开始使用 IDE,因为它对初学者有很大帮助。我会建议Netbeans。有一个格式化代码的快捷方式 - Alt Shift F。为什么你的
for循环没有第三部分(通常是i++的东西) -
如果您不想添加重复项,您只需检查 arraylist 以查看该值是否是其中的一部分。
lottery.contains(x);
标签: java error-handling runtime-error