En Java, comment break interagit-il avec les boucles imbriquées?
je sais break
instruction permet de sortir d'une boucle, mais le fait de sauter de boucles imbriquées ou juste le son?
4 réponses
Sans aucun ornement, break
va juste sortir de la boucle la plus interne. Ainsi dans ce code:
while (true) { // A
while (true) { // B
break;
}
}
break
une seule des sorties de la boucle B
, ainsi le code sera bouclé pour toujours.
Toutefois, Java dispose d'une fonction appelé "pauses" dans laquelle vous pouvez nommer vos boucles, puis de préciser lequel de sortir. Par exemple:
A: while (true) {
B: while (true) {
break A;
}
}
ce code ne sera pas boucle pour toujours, parce que le break
laisse explicitement boucle A
.
fort Heureusement, cette même logique fonctionne pour continue
. Par défaut, continue
exécute la prochaine itération de la boucle la plus interne contenant le continue
statement, mais il peut aussi être utilisé pour sauter à des itérations de boucle extérieure aussi bien en spécifiant une étiquette d'une boucle pour continuer l'exécution.
dans les langages autres que Java, par exemple, C et C++, cette instruction "labeled break" n'existe pas et il n'est pas facile de sortir d'une boucle imbriquée. Il peut être fait à l'aide de la goto
déclaration, bien que cela soit généralement mal vu. Par exemple, voici à quoi ressemble une pause imbriquée en C, en supposant que vous êtes prêt à ignorer le Conseil de Dijkstra et d'utiliser goto
:
while (true) {
while (true) {
goto done;
}
}
done:
// Rest of the code here.
J'espère que cela vous aidera!
par défaut, il sort de la boucle la plus interne. Mais vous pouvez spécifiez les étiquettes et faites-le sauter de boucles externes trop.
Vous pouvez également vous échapper en utilisant des Exceptions, de sorte que vous pouvez gérer plusieurs raisons
void fkt1() {
try {
while (true)
fkt2();
} catch (YourAbortException e) {
e.printStackTrace();
}
//go on
}
void fkt2() {
while (true)
if (abort)
throw new YourAbortException();
}
il casse une boucle . très simple. ex:
for loop
for loop
break;
end for loop
end for loop
sortir de la boucle intérieure, mais encore à l'extérieur de la boucle