299 votes

Différence entre pause et continuer la déclaration

Quelqu'un peut-il me dire la différence entre et des déclarations ?

591voto

Xn0vv3r Points 7778

Rupture laisse une boucle, continuer les sauts à l’itération suivante.

105voto

Jay Points 20373

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.

74voto

user unknown Points 15555
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. :)

34voto

GeoRoss Points 16

Quitte la boucle complètement et exécute les instructions après la boucle. Alors que continuer quitte l’itération en cours et exécute avec la valeur suivante dans la boucle.

Copiez le code suivant explique tout :

Sortie :

0 1 2 3
0 1 2 3 5 6 7 8 9

25voto

jsight Points 16025

rupture quitte complètement la boucle. Continuer ignore les instructions après l’instruction continue et maintient une boucle.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X