En Java, comme dans presque tous les langagesla programmation, il existe des outils pour assurer la répétition répétée d'un morceau de code particulier, ou, comme on les appelle, des cycles. Les boucles Java sont représentées par des opérateurs tels que for et while, ainsi que leurs variations. En règle générale, les boucles sont utilisées pour parcourir des tableaux unidimensionnels et multidimensionnels et des structures de données itérables (y compris des collections) afin de trouver certains éléments et d'autres opérations avec eux. Cependant, ce n'est pas le seul moyen d'utiliser un outil comme la boucle Java. Les cas d'utilisation seront fournis au fur et à mesure de leur examen.
L'opérateur de boucle fondamental en Java esttandis que. Un fragment de code enfermé dans son corps sera répété jusqu'à ce que la condition de l'expression entre crochets après qu'il satisfasse la valeur logique de vérité. La forme générale de l'instruction while est la suivante:
while (condition) {
// corps de boucle
}
Dès que la valeur de la condition logique cesse d'être vraie, le code enfermé dans le corps de la boucle cesse d'être exécuté et le contrôle est transféré sur la ligne immédiatement après.
Pour plus de clarté, analysons l'exemple présenté dans la figure ci-dessous:
Le nombre de variables déclaré a initialementvaleur 1. Ensuite, nous voyons une expression logique entre crochets après le nom de l'opérateur. Ce sera vrai, c'est-à-dire renvoie true, jusqu'à ce que la valeur de la variable de comptage soit inférieure ou égale à 10. Dans le corps de la boucle, à chaque passage (itération), la valeur de la variable augmente de 1 et s'affiche sur l'écran de la console. Notez que lorsque la valeur de la variable a atteint 11, la boucle a cessé de fonctionner.
Si la valeur de la variable de comptage était initialement égale à 11, la condition de boucle serait fausse et le programme n'entrerait même pas dans son corps.
Il convient de noter que la syntaxe Java permetutilisez une instruction while sans corps. Nous donnons un exemple. Supposons que nous ayons deux variables i = 100 et j = 200, nous sommes confrontés à la tâche de calculer par programmation leur moyenne arithmétique - pour cela, nous pouvons utiliser le «creux» tout en:
tandis que (++ i <- j);
Par conséquent, la valeur de l'une ou l'autre des deux variables sera égale à la moyenne de leurs valeurs initiales. Comme vous pouvez le voir, le cycle a parfaitement fonctionné sans le corps et a effectué toutes les actions nécessaires en termes conventionnels.
Dans les exemples précédents, si l'expression conditionnellerenvoyant initialement faux, puis l'exécution du programme ignorerait le corps de la boucle et irait plus loin. Cependant, des situations surviennent souvent dans lesquelles l'exécution du code contenu dans le corps de la boucle est nécessaire au moins une fois, quelle que soit la vérité de l'expression conditionnelle. En d'autres termes, il arrive que la vérification de la vérité d'une expression conditionnelle soit nécessaire non pas au début, mais à la fin du cycle. Une telle fonctionnalité peut fournir une sorte de boucle while appelée do-while. Il a la forme suivante:
faire {
// corps de boucle
} while (condition);
Comme nous pouvons le voir, le corps de la boucle passe d'abord à l'exécution, et alors seulement la vérité de la condition est vérifiée - et ainsi de suite à chaque itération.
Le code ci-dessus fonctionnera quelque chose comme çaidem avec tout en temps normal. Cependant, si nous définissons le nombre de variables sur 11, le corps de la boucle s'exécutera toujours une fois avant que l'opérateur puisse vérifier l'expression.
La boucle for est polyvalente etforme de langage efficace en Java. Avant la cinquième version du SDK Java, il n'y avait qu'une seule forme traditionnelle de l'instruction for, et après que la nouvelle soit apparue - pour chacune. Dans cette section, nous allons nous familiariser avec la forme traditionnelle de l'opérateur. pour la boucle Java ressemble à ceci:
Avant que le contrôle ne soit transféré au code dans le corpsboucle, l'initialisation de la variable i, agissant comme compteur, est d'abord effectuée. Ensuite, une expression conditionnelle est vérifiée, dans laquelle le compteur est comparé à une certaine valeur, et s'il renvoie vrai, le corps de la boucle est exécuté. Ensuite, la valeur du compteur passe à une étape prédéterminée et l'expression conditionnelle est vérifiée à nouveau, et ainsi de suite, jusqu'à ce que la condition devienne fausse. L'organigramme ci-dessous illustre toutes les étapes du cycle.
Pour une meilleure compréhension, voici un exemple du fonctionnement de la boucle for Java:
Nous voyons que comme un compteur est utilisévariable loopVal. Après chaque itération de la boucle, sa valeur augmentera de 1, et cela se produira jusqu'à ce qu'elle atteigne 11. Notez que la variable de contrôle peut également être déclarée en dehors de l'instruction for, mais si vous n'utilisez cette variable nulle part sauf dans une boucle, il est recommandé de le déclarer directement dans l'instruction. Gardez à l'esprit que la variable déclarée dans l'instruction elle-même a une portée dans cette boucle elle-même.
Il y a des situations où vous voulez déclarerplusieurs variables de contrôle de boucle. Pour Java, la boucle vous permet de spécifier deux variables ou plus séparées par des virgules, et de le faire à la fois pendant leur initialisation et pendant l'itération. Un tel opérateur aura la forme suivante:
pour (int i = 1, int j = 10; i À chaque itération, la valeur de la variable i augmentera de 1 et la valeur de la variable j diminuera de 1. Des itérations seront effectuées jusqu'à ce que i devienne supérieur ou égal à j. La boucle for est assez flexibleconception, puisque ses trois parties (initialisation, condition et incrément / décrément) peuvent être utilisées à d'autres fins. Par exemple, au lieu d'une expression conditionnelle avec une variable de contrôle, vous pouvez remplacer n'importe quelle variable logique. sortie booléenne = false; for (int i = 0;! exit; ++ i) { exit = true; } Dans l'exemple ci-dessus, nous pouvons observer comment le travailla boucle est complètement indépendante de la variable de contrôle i, et le nombre d'itérations dépend uniquement du moment où la variable de sortie prend la valeur true. De plus, la variable de contrôle peut être complètement supprimée de la boucle et cela n'affectera en rien son travail: for (;! Exit;) {}. Bien que ce ne soit pas la méthode de programmation la plus sensée, elle peut parfois être utile. L'essentiel est de fournir une situation dans laquelle la variable prendra la valeur nécessaire pour sortir de la boucle afin de ne pas la transformer en infini. Pour la boucle Java peut être déclarée comme tellefaçon: pour (;;) {}. Ceci est un exemple typique d'une boucle infinie avec des conditions d'interruption spéciales. Sur la façon d'interrompre ce genre de cycles, nous parlerons un peu plus tard. La boucle Java foreach est toujours appliquée àitération séquentielle sur les éléments d'un tableau ou de toute structure de données et exécution de certaines opérations répétées sur ceux-ci. Un exemple de cette forme de l'instruction for est présenté ci-dessous:Caractéristiques de l'utilisation de l'instruction for
Pour chaque boucle
En tant que variable itérative, déclaréenom et le tableau de chaînes de noms déclarées précédemment agit comme le deuxième argument de l'opérateur. Le nom de variable prendra alternativement les valeurs de chaque élément du tableau jusqu'à ce que tous ses éléments soient récupérés. Il convient de noter que le type de la variable doit être compatible avec le type d'éléments stockés dans le tableau. De plus, la variable de nom est en lecture seule et toute tentative de modification n'entraînera pas de modification de l'élément lui-même dans le tableau.
Il existe trois opérateurs d'abandon de boucle:casser, revenir et continuer. Les deux premiers sont capables d'interrompre complètement le fonctionnement de la boucle et de continuer n'interrompt que le fonctionnement de l'itération en cours. Si vous utilisez une boucle Java délibérément infinie dans votre code, ces opérateurs doivent y être présents. Prenons un exemple de pause simple:
Bien que cette instruction for ait 11 itérations, seules 8 seront exécutées, car lorsque le compteur i est 7, une condition fonctionnera avec une instruction break dans son corps.
L'instruction return agit de manière similaire, à la différence qu'elle fournit non seulement une sortie de la boucle Java, mais également de la méthode dans laquelle cette boucle est placée.
Gardez à l'esprit que les interruptions de pauseuniquement du cycle dans le corps duquel il se trouve directement, c'est-à-dire si vous l'utilisez dans une boucle imbriquée, la boucle externe ne cessera pas de fonctionner. Pour ce faire, la déclaration de rupture peut être utilisée comme une forme civilisée de goto.
Dans ce mode de réalisation, cet opérateur est utilisé dansun bundle avec une étiquette, qui vous permet d'organiser une sortie non seulement des boucles, mais aussi de n'importe quel bloc de code. Une étiquette est un identifiant correctement nommé suivi de deux points. L'étiquette est déclarée au début du bloc de code marqué. Pour interrompre l'exécution du bloc marqué, au bon endroit, vous devez déclarer: break nom_étiquette. Prenons l'exemple de la figure ci-dessous:
Trois blocs avec un nom d'étiquette sont déclarés dans le code,Deux et trois, respectivement. L'instruction break avec l'étiquette Two est imbriquée dans les trois blocs, mais lorsqu'elle est déclenchée, le programme quitte les blocs Three et Two et poursuit son exécution dans le bloc One. Ceux. dans la console, nous verrons deux messages: Trois et Un.
Nous nous sommes familiarisés avec le concept de boucles en Java,les instructions while et for principales, ainsi que leur do-while et pour chaque formulaire, respectivement. Pour une meilleure compréhension, nous vous recommandons de faire des exercices en utilisant ces opérateurs sous différentes formes, ainsi que diverses façons de les interrompre et de passer d'un bloc à l'autre.