Structures de contrôle
Les structures de contrôle permettent de contrôler le flux d'exécution du code. Si vous avez fait du C, la syntaxe vous sera très familière.
Conditions
if / else
const age = 20;
if (age >= 18) {
console.log('Majeur');
} else {
console.log('Mineur');
}
// Avec else if
const score = 85;
if (score >= 90) {
console.log('Excellent');
} else if (score >= 75) {
console.log('Bien');
} else if (score >= 50) {
console.log('Passable');
} else {
console.log('Insuffisant');
}
Opérateur ternaire
Pour les conditions simples, l'opérateur ternaire ? : est plus concis.
const age = 20;
const status = age >= 18 ? 'Majeur' : 'Mineur';
console.log(status); // 'Majeur'
// Utile dans les return
function getStatus(age) {
return age >= 18 ? 'Majeur' : 'Mineur';
}
Que retourne cette expression : const result = 5 > 3 ? 'oui' : 'non' ?
Switch
Pour tester plusieurs valeurs d'une même variable.
const day = 'lundi';
switch (day) {
case 'lundi':
case 'mardi':
case 'mercredi':
case 'jeudi':
case 'vendredi':
console.log('Jour de semaine');
break;
case 'samedi':
case 'dimanche':
console.log('Week-end');
break;
default:
console.log('Jour invalide');
}
Attention
N'oubliez pas le break dans chaque case, sinon l'exécution continue dans les cases suivants (fall-through).
Boucles
for
// Boucle classique
for (let i = 0; i < 5; i++) {
console.log(i); // 0, 1, 2, 3, 4
}
// Parcourir un tableau (mais préférez .forEach() ou for...of)
const fruits = ['pomme', 'banane', 'orange'];
for (let i = 0; i < fruits.length; i++) {
console.log(fruits[i]);
}
for...of
Pour itérer sur les éléments d'un tableau (plus lisible que for classique).
const fruits = ['pomme', 'banane', 'orange'];
for (const fruit of fruits) {
console.log(fruit);
}
// 'pomme'
// 'banane'
// 'orange'
Astuce
Avec les tableaux, préférez souvent .forEach(), .map(), .filter() plutôt que les boucles for classiques. Nous verrons cela dans le chapitre Tableaux.
// Au lieu de :
for (const fruit of fruits) {
console.log(fruit);
}
// Vous pouvez faire :
fruits.forEach(fruit => console.log(fruit));
while
let count = 0;
while (count < 5) {
console.log(count);
count++;
}
// 0, 1, 2, 3, 4
do...while
Exécute le bloc au moins une fois, puis vérifie la condition.
let count = 0;
do {
console.log(count);
count++;
} while (count < 5);
// 0, 1, 2, 3, 4
Quelle est la différence entre while et do...while ?
break et continue
break
Arrête complètement la boucle.
for (let i = 0; i < 10; i++) {
if (i === 5) {
break; // Arrête la boucle
}
console.log(i);
}
// 0, 1, 2, 3, 4
continue
Passe à l'itération suivante.
for (let i = 0; i < 5; i++) {
if (i === 2) {
continue; // Saute cette itération
}
console.log(i);
}
// 0, 1, 3, 4 (pas de 2)
Que fait continue dans une boucle ?
Opérateurs logiques
Utiles dans les conditions.
const age = 25;
const hasLicense = true;
// AND (&&) - Les deux conditions doivent être vraies
if (age >= 18 && hasLicense) {
console.log('Peut conduire');
}
// OR (||) - Au moins une condition doit être vraie
if (age < 18 || !hasLicense) {
console.log('Ne peut pas conduire');
}
// NOT (!) - Inverse la valeur booléenne
if (!hasLicense) {
console.log('Pas de permis');
}
Comprendre, pas mémoriser
Ce qu'il faut retenir :
- if/else : exécuter du code selon une condition
- Ternaire :
condition ? siVrai : siFauxpour les conditions simples - for : boucle avec compteur (mais souvent remplacé par
.forEach(),.map()) - for...of : itérer sur les éléments d'un tableau
- while : boucle tant qu'une condition est vraie
- break : sortir d'une boucle
- continue : passer à l'itération suivante
- && (ET), || (OU), ! (NON) : combiner des conditions
Ces structures sont quasi-identiques à celles de C/Java. Avec la pratique et les méthodes de tableaux, vous les utiliserez naturellement.
Exercice : Pratique : Structures de contrôle
Avec ce tableau d'étudiants :
const students = [
{ name: 'Alice', grade: 15 },
{ name: 'Bob', grade: 8 },
{ name: 'Charlie', grade: 12 },
{ name: 'Diana', grade: 18 }
];
- Pour chaque étudiant, afficher "Nom: Admis" si note >= 10, sinon "Nom: Recalé" (utilisez l'opérateur ternaire)
- Compter combien d'étudiants sont admis (note >= 10)
- Trouver le premier étudiant avec une mention (note >= 16) et afficher son nom (utilisez
break) - Afficher les notes de tous les étudiants SAUF Bob (utilisez
continue)
Astuce : Utilisez for...of pour parcourir le tableau.