Sortir d'une boucle en Java

Je suis en utilisant Java, mais je pense que cette question s'applique quelle que soit la langue. Je veux juste vous demander si il est préférable de sortir d'une boucle à l'aide d'un booléen qui, je bascule dans la boucle, ou simplement utiliser break;

Par exemple, j'ai écrit une méthode pour obtenir le valide se déplace pour une Reine du jeu d'échecs.

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;
}

Si je sortir de la boucle while en utilisant break; au lieu de définir arrêté à vrai comme je le fais, c'est ma compréhension qu'il fonctionne de manière plus efficace, mais n'est pas le plus grand de style de code.

  • Vu le code de la Reine, je dirais que vous avez plus à vous soucier que de simplement une instruction break. Par exemple, essayez d'éviter de Vecteur si vous n'avez pas besoin de Thread-safe structure de données (utiliser ArrayList au lieu de cela, Essayez d'encapsuler plus de logique dans les objets (tels que les essais, si un système de coordonnées sur le conseil d'administration, ainsi que le remplacement de la magie des nombres tels que "8")
  • Ok, merci pour les conseils. Je vais les prendre en considération.
InformationsquelleAutor null0pointer | 2011-03-09