Programmation Java/Itérations

Un livre de Wikilivres.
Aller à : navigation, rechercher


Java offre deux instructions permettant de réaliser des traitements itératifs : while, for. De plus, les instructions break et continue permettent d'altérer le déroulement des boucles.

Instruction while[modifier | modifier le wikicode]

L'instruction while continue d'exécuter le traitement situé dans la boucle tant que la condition indiquée est vérifiée :

while (condition) {
    // instructions à exécuter
}

Une autre forme du while évalue la condition à la fin de chaque cycle, plutôt qu'au début. Le bloc d'instruction est donc toujours exécuté au moins une fois :

do {
    // instructions à exécuter
} while (condition);

Instruction for[modifier | modifier le wikicode]

L'instruction for permet d'exécuter un traitement de manière répétitive, mais en spécifiant différemment la condition d'arrêt.

À l'intérieur des parenthèses se trouvent trois blocs d'instructions séparés par un point-virgule. L'exécution de la boucle for commence par exécuter le premier bloc, qui sert généralement à initialiser une variable. Ensuite le second bloc est exécuté (la condition). Si la condition retourne la valeur booléenne true, le corps de la boucle for est exécuté (le bloc d'instruction entre accolade). Sinon l'exécution de la boucle for se termine. Si le corps de la boucle a été exécuté, le troisième bloc est exécuté (incrémenter une variable en général) et le processus recommence : la condition est évaluée, etc.

Voici un exemple typique d'une boucle for qui défini un compteur pour exécuter la boucle i fois. En d'autres termes, le traitement est effectué tant que le compteur n'a pas atteint une limite :

for (int i=0 ; i<limite ; i=i+increment) {
    // instructions à exécuter
}


Environnement concurrentiel[modifier | modifier le wikicode]

L'accès aux données par l'intermédiaire des itérateurs est par essence séquentiel, deux threads ne peuvent bien sur pas utiliser le même itérateur, un objet ne peut pas fournir un itérateur à plusieurs threads. Il est conseillé d'utiliser dans ce cas les classes spécialisées de java.util.concurrent.

Sauts dans le code[modifier | modifier le wikicode]

Java permet de faire des sauts dans le code lors de l'exécution d'une boucle, c'est en général une mauvaise idée et il faut, autant que possible éviter de recourir à ces pratiques. Il s'agit des instructions break qui permet de sortir immédiatement de la boucle (c'est-à-dire de sauter immédiatement à la première instruction qui suit la boucle) ou de l'instruction continue qui permet de ne pas exécuter le reste de l'itération en cours, c'est-à-dire de sauter immédiatement au bloc d'incrémentation et à une nouvelle évaluation de la condition.

Pour les collections[modifier | modifier le wikicode]

Le chapitre Collections montrera que ce type d'objet possède sa propre itération : pour chaque objet d'une collection.