samedi 3 novembre 2012

Les structures de contrôles java



Comme la quasi totalité des langages de développement orientés objets, Java propose un ensemble d'instructions qui permettent d'organiser et de structurer les traitements. L'usage de ces instructions est similaire à celui rencontré avec leur équivalent dans d'autres langages.

1. Les boucles


while ( boolean )
{
    ... // code à exécuter dans la boucle
}



Le code est exécuté tant que le booléen est vrai. Si avant l'instruction while, le booléen est faux, alors le code de la boucle ne sera jamais exécuté
Ne pas mettre de ; après la condition sinon le corps de la boucle ne sera jamais exécuté

do {
   ...
} while ( boolean );

Cette boucle est au moins exécuté une fois quelque soit la valeur du booléen;



for ( initialisation; condition; modification) {
    ...
}
Exemple :

for (i = 0 ; i < 10; i++ ) { ....}
for (int i = 0 ; i < 10; i++ ) { ....}
for ( ; ; ) { ... } // boucle infinie


L'initialisation, la condition et la modification de l'index sont optionnelles.

Dans l'initialisation, on peut déclarer une variable qui servira d'index et qui sera dans ce cas locale à la boucle.

Il est possible d'inclure plusieurs traitements dans l'initialisation et la modification de la boucle : chacun des traitements doit être séparé par une virgule.

Exemple :
for (i = 0 , j = 0 ; i * j < 1000;i++ , j+= 2) { ....}

La condition peut ne pas porter sur l'index de la boucle :

Exemple :

boolean trouve = false;
for (int i = 0 ; !trouve ; i++ ) {
if ( tableau[i] == 1 ) {
trouve = true;... //gestion de la fin du parcours du tableau
}
}
Il est possible de nommer une boucle pour permettre de l'interrompre même si cela est peu recommandé :

Exemple :
int compteur = 0;
boucle:
while (compteur < 100) {
for(int compte = 0 ; compte < 10 ; compte ++) {
compteur += compte;
System.out.println("compteur = "+compteur);
if (compteur> 40) break boucle;
}
}


2. Les branchements conditionnels

if (boolean) {
    ...
} else if (boolean) {
    ...
} else {
    ...
}

switch (expression) {
    case constante1 :
        instr11;
        instr12;
        break;

    case constante2 :
        ...
    default :
        ...
}

On ne peut utiliser switch qu'avec des types primitifs d'une taille maximum de 32 bits (byte, short, int, char).

Si une instruction case ne contient pas de break alors les traitements associés au case suivant sont exécutés.

Il est possible d'imbriquer des switch

L'opérateur ternaire : ( condition ) ? valeur-vrai : valeur-faux

Exemple :

if (niveau == 5) // equivalent à total = (niveau ==5) ? 10 : 5;
total = 10;
else total = 5 ;
System.out.println((sexe == " H ") ? " Mr " : " Mme ");


3. Les débranchements


break : permet de quitter immédiatement une boucle ou un branchement. Utilisable dans tous les contrôles de flot

continue : s'utilise dans une boucle pour passer directement à l'itération suivante

break et continue peuvent s'exécuter avec des blocs nommés. Il est possible de préciser une étiquette pour indiquer le point de retour lors de la fin du traitement déclenché par le break.
Une étiquette est un nom suivi d'un caractère deux-points qui définit le début d'une instruction.

Aucun commentaire:

Enregistrer un commentaire