Rappel de Java - les blocs

par Tom
le 15/12/2019

Sommaire


Temps de lecture estimé : 30min


Bloc conditionnel

Permet de vérifier qu'une condition est vraie avant d'exécuter du code.

Se note if...else if...else. Les deux derniers sont optionnels.

Exemple :

if (x == 2) {
    System.out.println("x est effectivement égal à 2");
}
else {
    System.out.println("x est différent de 2");
}

Autre exemple :

if (choix == 1) {
    System.out.println("Premier choix");
}
else if (choix == 2) {
    System.out.println("Deuxième choix");
}
else if (choix == 3) {
    System.out.println("Troisième choix");
}
else {
    System.out.println("Attention ! Le choix doit être entre 1 et 3");
}

Blocs itératifs

Bloc while (tant que)

La boucle itère tant que la condition est vraie.

while (condition) {
    ...
}
Bloc do..while (répéter .. tant que)

La boucle itère tant que la condition est vraie, mais contrairement au while elle s'exécute au moins une fois avant de vérifier la condition.

do {
    ...
} while (condition); // ne pas oublier le ;
Bloc for(...; ...; ...)
for (A; B; C) {
    ...
}

est équivalent à :

A;

while (B) {
    ...

    C;
}

Usage le plus courant : faire varier un nombre. Exemple :

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

i va varier de 0 à 9 (car on a écrit < 10 et pas <= 10).

Bloc for (... : ...)
for (variable : tableau) {
    ...
}

Permet d'itérer dans un tableau ou une liste.

int[] a = new int[10];
for (int b : a) {
    ...
}

ou encore

ArrayList<int> a = new ArrayList<>(); // pas obligatoire de préciser <int>, on peut mettre seulement <>
for (int b : a) {
    ...
}
Mots-clés de boucles

Deux mots-clés spécifiques peuvent être utilisés dans les boucles.

Le mot-clé break permet de sortir prématurément d'une boucle.

// parcourt le tableau et s'arrête dès qu'un des nombres est supérieur à 5.
int somme = 0;
for (int nb : nombres) {
    if (nb > 5) {
        break;   
    }

    somme += nb;
}

Le mot-clé continue permet de sauter l'itération actuelle prématurément.

// va parcourir le tableau, et ignorera tous les nombres négatifs.
int resultat = 0;
for (int nb : nombres) {
    if (nb < 0) {
        continue;
    }

    resultat += 5;
    resultat *= nb;
    resultat += 1;
}

Note : si vous utilisez le mot-clé return dans une boucle, celui-ci stoppera net l'exécution de la boucle. Exemple :

/**
 * Renvoie le premier nombre pair de la liste.
 * Si aucun nombre pair n'est trouvé, renvoie -1.
 */
int premierNombrePair(ArrayList<int> nombres) {
    for (int nb : nombres) {
        if (nb % 2 == 0) {
            return nb;
        }
    }

    return -1;
}