Quelqu'un peut-il me dire la différence entre et
des déclarations ?
Réponses
Trop de publicités?Voir les Instructions de branchement pour plus de détails et des exemples de code:
pause
L'instruction break a deux formes: étiquetés et non étiquetés. Vous avez vu sans étiquette formulaire dans la discussion précédente de l'instruction switch. Vous pouvez également utiliser une sans étiquette pause pour mettre fin à un for, while ou do-while [...]
Un sans étiquette instruction break met fin au plus profond de l'interrupteur, pour, tout, ou-lors de la déclaration, mais une étiquette pause se termine une instruction externe.
continuer
L'instruction continue ignore l'itération courante d'un for, while ou do-while. Sans étiquette formulaire saute à la fin de la boucle de plus bas niveau du corps et évalue l'expression booléenne qui contrôle la boucle. [...]
Une étiquette instruction continue permet de sauter le courant de l'itération d'une boucle externe marqué avec le label.
System.out.println ("starting loop:");
for (int n = 0; n < 7; ++n)
{
System.out.println ("in loop: " + n);
if (n == 2) {
continue;
}
System.out.println (" survived first guard");
if (n == 4) {
break;
}
System.out.println (" survived second guard");
// continue at head of loop
}
// break out of loop
System.out.println ("end of loop or exit via break");
Cela conduira à la sortie suivante:
starting loop:
in loop: 0
survived first guard
survived second guard
in loop: 1
survived first guard
survived second guard
in loop: 2
in loop: 3
survived first guard
survived second guard
in loop: 4
survived first guard
end of loop or exit via break
Vous pouvez marquer un bloc, non seulement d'une boucle for, puis pause/continuer à partir d'un bloc imbriqué à l'extérieur. Dans quelques cas, cela pourrait être utile, mais en général, vous allez essayer d'éviter ce type de code, à l'exception de la logique du programme est beaucoup mieux à comprendre que dans l'exemple suivant:
first:
for (int i = 0; i < 4; ++i)
{
second:
for (int j = 0; j < 4; ++j)
{
third:
for (int k = 0; k < 4; ++k)
{
System.out.println ("inner start: i+j+k " + (i + j + k));
if (i + j + k == 5)
continue third;
if (i + j + k == 7)
continue second;
if (i + j + k == 8)
break second;
if (i + j + k == 9)
break first;
System.out.println ("inner stop: i+j+k " + (i + j + k));
}
}
}
Parce que c'est possible, cela ne signifie pas que vous devez l'utiliser.
Si vous souhaitez dissimuler votre code dans une drôle de façon, vous ne choisissez pas un meanigful nom, mais http: et de le suivre avec un commentaire, ce qui semble étranger, comme un webadress dans le code source:
http://http://stackoverflow.com/questions/462373
for (int i = 0; i < 4; ++i)
{
if (i == 2)
break http;
Je suppose que c'est à partir d'un Joshua Bloch quizzle. :)