web-dev-qa-db-fra.com

Java continue à la fin de si

J'ai quelques exemples de code d'un livre et l'auteur utilise toujours un continuer à la fin d'un if.

Exemple:

int a = 5;
if(a == 5)
{
// some code
continue;
}

Pour moi, cela n’a aucun sens. Peut-il y avoir une sorte de raisonnement de la gestion de la qualité derrière ou est-ce que je manque juste un point plus important?

9
John Frost

Peut-être que cet extrait de code se trouvait dans une boucle (for/while/do...while)? sinon, il est logique que not mette un continue dans une instruction conditionnelle.

En fait, une continue orpheline (par exemple: une non-imbriquée quelque part dans une instruction de boucle) produira une erreur continue cannot be used outside of a loop au moment de la compilation.

20
Óscar López

Continuer est utilisé pour passer à la prochaine itération d'une boucle. Donc, quelque chose comme ça aurait du sens. Vous pouvez maintenant utiliser les conditions de votre choix (votre code est le a==5 pour commencer) et la logique métier de votre choix (le mien est un exemple stupide et artificiel).

StringBuilder sb = new StringBuilder();
for(String str : strings) {
    sb.append(str);
    if(str.length() == 0) continue; // next loop if empty

    str = str.substring(1);
    sb.append(str);
    if(str.length() == 0) continue; // next loop if empty

    str = str.substring(1);
    sb.append(str);
    if(str.length() == 0) continue; // next loop if empty

    sb.append(str);
}
5
corsiKa

Parfois, il est utile de forcer une itération précoce d'une boucle. Autrement dit, vous pouvez continuer à exécuter la boucle, mais arrêtez de traiter le reste du code dans son corps pour cette itération particulière. C'est en fait un goto juste après le corps de la boucle, jusqu'au bout de la boucle. L'instruction continue effectue une telle action. Dans les boucles while et do-while, une instruction continue fait en sorte que le contrôle soit transféré directement à l'expression conditionnelle qui contrôle la boucle. Dans une boucle for, le contrôle passe d'abord à la partie itération de l'instruction for, puis à l'expression conditionnelle. Pour les trois boucles, tout code intermédiaire Est ignoré. Voici un exemple de programme qui utilise continue pour que deux lignes soient imprimées sur chaque ligne: // Démonstration continue. 

class Continue
{ 
public static void main(String args[]) 
    { 
    for(int i=0; i<10; i++) 
        { 
    System.out.print(i + " "); 
    if (i%2 == 0)
    continue; 
    System.out.println(""); 
        } 
    } 
}

Ce code utilise l'opérateur% pour vérifier si i est pair. Si c'est le cas, la boucle continue sans imprimer de nouvelle ligne. Voici le résultat de ce programme:

0 1 
2 3 
4 5 
6 7 
8 9 

2
Abhishekkumar

Normalement, continue est utilisé pour échapper aux boucles profondément imbriquées ou simplement pour la clarté (discutable).

Parfois, continue est également utilisé comme espace réservé pour créer un corps de boucle plus clair .

for (count = 0; foo.moreData(); count++)
  continue;

C'est une question de goût que je n'utilise personnellement pas continuer.

0
dreamcrash