Le Java continue et rompt Mots-clés

Le Java continue et rompt

1. Vue d'ensemble

Dans cet article rapide, nous présenterons les mots clés Javacontinue etbreak et nous nous concentrerons sur la manière de les utiliser dans la pratique.

En termes simples, l'exécution de ces instructions entraîne la création d'une branche du flux de contrôle actuel et met fin à l'exécution du code dans l'itération en cours.

2. L'instructionbreak

L'instructionbreak se présente sous deux formes: sans étiquette et étiquetée.

image

2.1. break non étiquetés

Nous pouvons utiliser l'instruction non étiquetée pour terminer une bouclefor,while oudo-while ainsi que le blocswitch-case:

for (int i = 0; i < 5; i++) {
    if (i == 3) {
        break;
    }
}

Cet extrait de code définit une bouclefor censée être répétée cinq fois. But when counter equals 3, the if condition becomes true and the break statement terminates the loop. Cela provoque le transfert du flux de contrôle vers l'instruction qui suit après la fin de la bouclefor.

En cas de boucles imbriquées,an unlabeled break statement only terminates the inner loop that it’s in. Les boucles extérieures continuent l'exécution:

for (int rowNum = 0; rowNum < 3; rowNum++) {
    for (int colNum = 0; colNum < 4; colNum++) {
        if (colNum == 3) {
            break;
        }
    }
}

Cet extrait contient des bouclesfor imbriquées. When colNum equals 3, the if the condition evaluates to true and the break statement causes the inner for loop to terminate. Cependant, la boucle externefor continue d'itérer.

2.2. Étiquetébreak

Nous pouvons également utiliser une instructionbreak étiquetée pour terminer une bouclefor,while oudo-while. A labeled break terminates the outer loop.

À la fin, le flux de commande est transféré à l'instruction immédiatement après la fin de la boucle externe:

compare:
for (int rowNum = 0; rowNum < 3; rowNum++) {
    for (int colNum = 0; colNum < 4; colNum++) {
        if (rowNum == 1 && colNum == 3) {
            break compare;
        }
    }
}

Dans cet exemple, nous avons introduit une étiquette juste avant la boucle externe. LorsquerowNum vaut 1 etcolNum vaut 3, la conditionif est évaluée àtrue et l'instructionbreak met fin à la boucle externe.

Le flux de contrôle est ensuite transféré à l'instruction suivant la fin de la boucle externefor.

3. L'instructioncontinue

L'instructioncontinue se présente également sous deux formes: sans étiquette et étiquetée.

image

3.1. continue non étiquetés

Nous pouvons utiliser une instruction non étiquetée pour contourner l'exécution du reste des instructions dans l'itération actuelle d'une bouclefor,while oudo-while. It skips to the end of the inner loop and continues the loop:

int counter = 0;
for (int rowNum = 0; rowNum < 3; rowNum++) {
    for (int colNum = 0; colNum < 4; colNum++) {
        if (colNum != 3) {
            continue;
        }
        counter++;
    }
}

Dans cet extrait de code, chaque fois quecolNum n'est pas égal à 3, l'instructioncontinue sans étiquette ignore l'itération actuelle, contournant ainsi l'incrémentation de la variablecounter dans cette itération. Cependant, la boucle externefor continue à itérer. Ainsi, l'incrément decounter se produit uniquement lorsquecolNum est égal à 3 à chaque itération de la boucle externefor.

3.2. Étiquetécontinue

On peut également utilisera labeled continue statement which skips the outer loop. En sautant, le flux de contrôle est transféré à la fin de la boucle externe, poursuivant ainsi efficacement l'itération de la boucle externe:

int counter = 0;
compare:
for (int rowNum = 0; rowNum < 3; rowNum++) {
    for (int colNum = 0; colNum < 4; colNum++) {
        if (colNum == 3) {
            counter++;
            continue compare;
        }
    }
}

Nous avons introduit une étiquette juste avant la boucle externe. Chaque fois quecolNum est égal à 3, la variablecounter est incrémentée. L'instruction étiquetéecontinue fait sauter l'itération de la boucle externefor.

Le flux de contrôle est transféré à la fin de la boucle externefor, qui se poursuit avec l'itération suivante.

4. Conclusion

Dans ce didacticiel, nous avons vu différentes manières d'utiliser les mots-clésbreak etcontinue comme instructions de branchement en Java.

Le code complet présenté dans cet article est disponibleover on GitHub.