我有以下代码:
boolean[] usedInts = {false, false, false, false, false, false, false, false, false};
for(int i = 0; i <= 8; i++) {
JLabel square = squares[i];
// Declare coordinate
Coordinate coordinate = null;
boolean keepGoing = true;
while (keepGoing) {
// Get random number
int rand = generateRandom();
if (usedInts[rand]) {
keepGoing = true;
} else {
// Save that we used it
usedInts[rand] = true;
keepGoing = false;
}
// Initialize coordinate
coordinate = coordinates[rand];
}
// Set square coordinates
square.setLocation(coordinate.getX(), coordinate.getY());
// Set used to true
}
问题是while
循环是无穷无尽的,else
部分只运行8次。
这是怎么回事?
答案 0 :(得分:3)
我看到的唯一可能是你的generateRandom
方法生成范围0..7(仅8个数字,而不是9)或1..8的数字,例如
答案 1 :(得分:2)
我猜它是因为你的generateRandom函数没有返回正确的范围。
答案 2 :(得分:0)
添加 generateRandom 方法,以便我们解决您的问题。