Version sans JavaScript, en lecture seule : les ateliers, les quiz et l’exécution du code n’y sont pas. Version complète · Catalogue · Se connecter

Support de cours · chapitre 5

Structures de contrôle

if, ternaire, switch, while, do…while et for.

5.1.1 Condition if

  • L’instruction if exécute l’instruction ou le bloc qui la suit si la condition booléenne est vraie.
  • Le else optionnel précise ce qu’il faut exécuter si la condition est fausse.
if (condition1) {
    instruction1;
} else if (condition2) {
    instruction2;
} else {
    instructionSinon;
}

5.1.2 Opérateur ternaire

Si une instruction if ne contient qu’un assignement de valeur, on peut préférer l’opérateur ternaire ? :.

if (niveauJoueur > 3) {
    bonusXP = 5;
} else {
    bonusXP = 10;
}
// est equivalent a
bonusXP = (niveauJoueur > 3) ? 5 : 10;

5.2 Branchements conditionnels (switch)

L’instruction switch permet d’exécuter du code selon la valeur d’une expression.

switch (expression) {
    case constante1 :
        instr11;
        instr12;
        break;
    case constante2 :
        break;
    default :
        // ...
}

Le fall-through : ici, a vaut 2

public class Demo {
    public static void main(String[] args) {
        int a = 0;
        int expression = 0;
        switch (expression) {
            case 0 :
                a++;
            case 1 :
                a++;
                break;
            default :
                a = -1;
        }
        System.out.println("a vaut " + a);
    }
}

5.4 Boucle while

Une boucle while exécute le bloc qui la suit tant que la condition est vraie. La condition est évaluée en début de chaque itération.

while (condition) {
    instruction;
}

Si la condition est fausse avant le while, le corps de la boucle ne sera jamais exécuté.

5.5 Boucle do…while

La condition est évaluée en fin de chaque itération.

do {
    instructions;
} while (condition);

5.6 Boucle for

for (initialisation; condition; modification) {
    // instructions
}

Le corps de la boucle est exécuté tant que condition est vraie, et modification est appliquée à chaque tour.

Les trois boucles, côte à côte

public class Demo {
    public static void main(String[] args) {
        System.out.print("for      :");
        for (int i = 1; i <= 5; i++) {
            System.out.print(" " + i);
        }
        System.out.println();

        System.out.print("while    :");
        int j = 1;
        while (j <= 5) {
            System.out.print(" " + j);
            j++;
        }
        System.out.println();

        System.out.print("do while :");
        int k = 10;
        do {
            System.out.print(" " + k);  // s'execute meme si la condition est fausse
            k++;
        } while (k <= 5);
        System.out.println();
    }
}