Les étiquettes en Java

English: A snippet of code in the Java program...

English: A snippet of code in the Java programming language written to illustrate syntax highlighting of keywords. (Photo credit: Wikipedia)

Les premières tasses de thé glacé passées, le tutoriel Java arrive sur les instructions de contrôle (branchement et boucle).  A l’époque où je développais couramment en Java, je n’utilisait que très peu les instruction break ou continue dans les boucles. L’utilisation d’étiquette était pour ainsi dire absente du code que je produisais. Pourquoi ? Tout d’abord parce qu’on a appris que les étiquettes (label) étaient utilisés dans d’autre langage pour faire des sauts (goto) et que cela était contraire à la programmation structurée, que l’on devait avoir un point d’entrée et un point de sortie unique, que cela simplifiait ainsi le code etc, etc. Et puis sans doute parce que la complexités des algorithmes de l’informatique de gestion ne nécessitait pas l’optimisation du flot de contrôle pour éviter des tours de boucle superflus.

Mais bien sûr si la performance est un critère comme par exemple en informatique financière, alors il vaut mieux sortir d’une boucle dès qu’on a fini le travail. Est-ce pour autant sacrifier le beauté du code et sa maintenabilité ? Non, car les étiquettes en Java ne servent qu’à nommer les blocs de boucles et on ne peut pas les mettre ailleurs pour faire des sauts dans tous les sens. Le code reste donc structuré. L’extrait de code suivant montre un exemple d’utilisation d’étiquette:

        premierNiveau:
        for (int i=0;i<100;i++){
            deuxiemeNiveau:
            for (int j=0;j<i*100;j++){
                boolean mustBreak = false;
                boolean mustContinueOutsideLoop = false;
                // code that decide if we must break or continue
                if (mustBreak){
                    break deuxiemeNiveau;
                }
                if (mustContinueOutsideLoop){
                    continue premierNiveau;
                }
                // very long running code here
            }
        }

Cet article, publié dans Langage, est tagué . Ajoutez ce permalien à vos favoris.

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s