Java无尽的循环

时间:2013-07-01 19:34:19

标签: java if-statement while-loop infinite-loop

我有以下代码:

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次。 这是怎么回事?

3 个答案:

答案 0 :(得分:3)

我看到的唯一可能是你的generateRandom方法生成范围0..7(仅8个数字,而不是9)或1..8的数字,例如

答案 1 :(得分:2)

我猜它是因为你的generateRandom函数没有返回正确的范围。

答案 2 :(得分:0)

添加 generateRandom 方法,以便我们解决您的问题。