Выход из цикла в Java

Я использую Java, но думаю, этот вопрос применим к любому языку. Я просто хочу спросить, лучше ли выйти из цикла, используя логическое значение, которое я переключаю внутри цикла, или просто использовать break;

Например, я просто писал метод, чтобы получить допустимые ходы для ферзя в шахматах .

private static final int[][] DIRS = {{0, 1}, {0, -1}, {1, 0}, {-1, 0}, {1, 1}, {-1, -1}, {-1, 1}, {1, -1}};

public Vector<Move> getValidMoves() {
    Vector<Move> validMoves = new Vector<Move>();

    for (int i = 0; i < DIRS.length; i++) {
        boolean stopped = false;
        int newX = x + DIRS[i][0];
        int newY = y + DIRS[i][1];
        while (!stopped && newX >= 0 && newX < 8 && newY >= 0 && newY < 8) {
            if (board[newX][newY] == null) {
                validMoves.add(new Move(x, y, newX, newY));
                newX += DIRS[i][0];
                newY += DIRS[i][1];
            } else {
                if (board[newX][newY].getColour() == colour) {
                    stopped = true;
                } else {
                    validMoves.add(new Move(x, y, newX, newY));
                    stopped = true;
                }
            }
        }
    }

    return validMoves;
}

Если я выйду из цикла while с помощью break; вместо того, чтобы устанавливать для параметра stop значение true, как я это делаю, я понимаю, что он работает более эффективно, но не лучший стиль кода.

6
задан null0pointer 9 March 2011 в 13:16
поделиться