Introduction
Bienvenue dans cette deuxième partie de notre guide sur les fondamentaux de la programmation ! Si vous n'avez pas lu la Partie 1 sur les variables, types et opérateurs, je vous conseille de commencer par là.
Dans cet article, nous allons découvrir les structures qui rendent vos programmes intelligents et puissants :
- Les conditions : prendre des décisions
- Les boucles : répéter des actions
- Les tableaux : gérer des collections de données
- Les fonctions : organiser et réutiliser votre code
Les Conditions : Prendre des Décisions
Le concept
Dans la vie quotidienne, nous prenons constamment des décisions : "S'il pleut, je prends mon parapluie, sinon je mets mes lunettes de soleil". En programmation, c'est exactement pareil !
Une condition permet d'exécuter du code uniquement si une certaine condition est remplie.
La structure if / else
// Structure de base
if (condition) {
// Code exécuté si la condition est VRAIE
} else {
// Code exécuté si la condition est FAUSSE
}
// Exemple concret : vérifier l'âge
$age = 17;
if ($age >= 18) {
echo "Vous êtes majeur. Bienvenue !";
} else {
echo "Vous êtes mineur. Accès refusé.";
}
// Résultat : Vous êtes mineur. Accès refusé.
Conditions multiples avec else if
Quand vous avez plusieurs cas à gérer :
$note = 15;
if ($note >= 16) {
$mention = "Très Bien";
} else if ($note >= 14) {
$mention = "Bien";
} else if ($note >= 12) {
$mention = "Assez Bien";
} else if ($note >= 10) {
$mention = "Passable";
} else {
$mention = "Insuffisant";
}
echo "Mention : " . $mention; // Mention : Bien
Combiner les conditions
$age = 25;
$aPermis = true;
$aVoiture = true;
// Toutes les conditions doivent être vraies (ET)
if ($age >= 18 && $aPermis && $aVoiture) {
echo "Vous pouvez conduire !";
}
// Au moins une condition doit être vraie (OU)
$estWeekend = false;
$estFerie = true;
if ($estWeekend || $estFerie) {
echo "C'est un jour de repos !";
}
L'opérateur ternaire (raccourci)
Pour les conditions simples sur une seule ligne :
// Syntaxe : condition ? valeurSiVrai : valeurSiFaux
$age = 20;
$statut = ($age >= 18) ? "majeur" : "mineur";
echo $statut; // majeur
// Équivalent à :
if ($age >= 18) {
$statut = "majeur";
} else {
$statut = "mineur";
}
Les Boucles : Répéter des Actions
Pourquoi les boucles ?
Imaginez devoir afficher "Bonjour" 100 fois. Sans boucle, il faudrait écrire 100 lignes de code ! Les boucles permettent d'automatiser les répétitions.
La boucle FOR
Utilisez for quand vous savez combien de fois répéter :
// Syntaxe : for (initialisation; condition; incrémentation)
// Compter de 1 à 5
for ($i = 1; $i <= 5; $i++) {
echo "Itération numéro " . $i . "\n";
}
// Résultat :
// Itération numéro 1
// Itération numéro 2
// Itération numéro 3
// Itération numéro 4
// Itération numéro 5
// Table de multiplication
$nombre = 7;
echo "Table de " . $nombre . " :\n";
for ($i = 1; $i <= 10; $i++) {
$resultat = $nombre * $i;
echo "$nombre x $i = $resultat\n";
}
La boucle WHILE
Utilisez while quand vous répétez tant qu'une condition est vraie :
// Tant que le compteur est inférieur à 5
$compteur = 0;
while ($compteur < 5) {
echo "Compteur : " . $compteur . "\n";
$compteur++; // IMPORTANT : incrémenter pour éviter boucle infinie !
}
// Exemple pratique : deviner un nombre
$nombreSecret = 7;
$tentative = 0;
$devine = false;
while (!$devine && $tentative < 3) {
$proposition = rand(1, 10); // Nombre aléatoire entre 1 et 10
$tentative++;
if ($proposition == $nombreSecret) {
echo "Trouvé en " . $tentative . " tentative(s) !\n";
$devine = true;
} else {
echo "Raté ! Proposition : " . $proposition . "\n";
}
}
⚠️ Attention aux boucles infinies ! Assurez-vous que la condition deviendra fausse à un moment.
Break et Continue
// break : sortir immédiatement de la boucle
for ($i = 1; $i <= 10; $i++) {
if ($i == 5) {
break; // Stop ! On sort de la boucle
}
echo $i . " ";
}
// Résultat : 1 2 3 4
// continue : passer à l'itération suivante
for ($i = 1; $i <= 5; $i++) {
if ($i == 3) {
continue; // On saute le 3
}
echo $i . " ";
}
// Résultat : 1 2 4 5
Les Tableaux : Collections de Données
Tableaux indexés
Un tableau est une variable qui contient plusieurs valeurs. Chaque valeur a un index (position) qui commence à 0 :
// Créer un tableau
$fruits = ["pomme", "banane", "orange", "kiwi"];
// Accéder aux éléments par leur index
echo $fruits[0]; // pomme (premier élément)
echo $fruits[2]; // orange (troisième élément)
// Modifier un élément
$fruits[1] = "fraise"; // Remplace "banane" par "fraise"
// Ajouter un élément
$fruits[] = "mangue"; // Ajoute à la fin
// Nombre d'éléments
echo count($fruits); // 5
Tableaux associatifs
Au lieu d'index numériques, on utilise des clés nommées :
$utilisateur = [
"nom" => "Sallarsaib",
"prenom" => "Jean-Luc",
"email" => "contact@fenrir-it.com",
"age" => 35,
"actif" => true
];
// Accéder aux valeurs
echo $utilisateur["prenom"]; // Jean-Luc
echo $utilisateur["email"]; // contact@fenrir-it.com
// Modifier une valeur
$utilisateur["age"] = 36;
// Ajouter une clé
$utilisateur["ville"] = "Paris";
Parcourir un tableau avec foreach
// Tableau simple
$langages = ["PHP", "JavaScript", "Python", "Java"];
foreach ($langages as $langage) {
echo "J'apprends " . $langage . "\n";
}
// Tableau associatif (récupérer clé ET valeur)
$utilisateur = ["nom" => "Dupont", "age" => 30, "ville" => "Lyon"];
foreach ($utilisateur as $cle => $valeur) {
echo $cle . " : " . $valeur . "\n";
}
// Résultat :
// nom : Dupont
// age : 30
// ville : Lyon
Les Fonctions : Organiser son Code
Pourquoi créer des fonctions ?
Une fonction est un bloc de code réutilisable qui effectue une tâche précise. Avantages :
- Réutilisabilité : écrire une fois, utiliser partout
- Lisibilité : code plus clair et organisé
- Maintenance : modifier à un seul endroit
- Tests : plus facile à tester
Créer une fonction simple
// Définir une fonction
function direBonjour() {
echo "Bonjour tout le monde !";
}
// Appeler la fonction
direBonjour(); // Affiche : Bonjour tout le monde !
direBonjour(); // On peut l'appeler plusieurs fois !
Fonction avec paramètres
// Un paramètre
function direBonjour($nom) {
echo "Bonjour " . $nom . " !";
}
direBonjour("Marie"); // Bonjour Marie !
direBonjour("Pierre"); // Bonjour Pierre !
// Plusieurs paramètres
function presenter($prenom, $age, $ville) {
echo "Je suis " . $prenom . ", j'ai " . $age . " ans et j'habite à " . $ville . ".";
}
presenter("Alice", 28, "Paris");
Fonction avec valeur de retour
// Fonction qui RETOURNE une valeur (au lieu d'afficher)
function calculerTTC($prixHT, $tauxTVA = 20) {
$tva = $prixHT * $tauxTVA / 100;
return $prixHT + $tva;
}
// Utiliser le résultat
$prix = calculerTTC(100); // 120 (TVA 20% par défaut)
$prix2 = calculerTTC(100, 5.5); // 105.5 (TVA réduite)
echo "Prix TTC : " . $prix . " €";
// On peut utiliser le résultat dans des calculs
$total = calculerTTC(50) + calculerTTC(30);
echo "Total : " . $total . " €"; // 96 €
Paramètre avec valeur par défaut
function creerUtilisateur($nom, $role = "membre", $actif = true) {
return [
"nom" => $nom,
"role" => $role,
"actif" => $actif
];
}
$user1 = creerUtilisateur("Alice"); // role=membre, actif=true
$user2 = creerUtilisateur("Bob", "admin"); // role=admin, actif=true
$user3 = creerUtilisateur("Charlie", "membre", false); // role=membre, actif=false
Projet Pratique : Gestionnaire de Notes
Combinons tout ce que nous avons appris dans un mini-projet :
// Données des étudiants
$classe = [
["nom" => "Alice", "notes" => [15, 12, 18, 14]],
["nom" => "Bob", "notes" => [10, 8, 12, 11]],
["nom" => "Charlie", "notes" => [17, 19, 16, 18]],
["nom" => "Diana", "notes" => [9, 11, 10, 8]]
];
// Fonction : calculer la moyenne d'un tableau de notes
function calculerMoyenne($notes) {
$somme = 0;
foreach ($notes as $note) {
$somme += $note;
}
return $somme / count($notes);
}
// Fonction : déterminer la mention
function obtenirMention($moyenne) {
if ($moyenne >= 16) {
return "Très Bien 🌟";
} else if ($moyenne >= 14) {
return "Bien 👍";
} else if ($moyenne >= 12) {
return "Assez Bien";
} else if ($moyenne >= 10) {
return "Passable";
} else {
return "Insuffisant ❌";
}
}
// Fonction : afficher le bulletin d'un étudiant
function afficherBulletin($etudiant) {
$moyenne = calculerMoyenne($etudiant["notes"]);
$mention = obtenirMention($moyenne);
echo "=== Bulletin de " . $etudiant["nom"] . " ===\n";
echo "Notes : " . implode(", ", $etudiant["notes"]) . "\n";
echo "Moyenne : " . number_format($moyenne, 2) . "/20\n";
echo "Mention : " . $mention . "\n\n";
}
// Afficher les bulletins de toute la classe
echo "📚 BULLETINS DE LA CLASSE\n";
echo "==========================\n\n";
foreach ($classe as $etudiant) {
afficherBulletin($etudiant);
}
// Calculer la moyenne de la classe
$sommeMoyennes = 0;
foreach ($classe as $etudiant) {
$sommeMoyennes += calculerMoyenne($etudiant["notes"]);
}
$moyenneClasse = $sommeMoyennes / count($classe);
echo "📊 Moyenne de la classe : " . number_format($moyenneClasse, 2) . "/20\n";
Récapitulatif
Félicitations ! Vous maîtrisez maintenant les fondamentaux de la programmation :
- ✅ Partie 1 : Variables, types de données, opérateurs
- ✅ Partie 2 : Conditions, boucles, tableaux, fonctions
Ces concepts sont universels et s'appliquent à tous les langages. La syntaxe peut varier, mais la logique reste identique.
Pour aller plus loin
- Pratiquez avec des exercices sur Codewars, HackerRank ou LeetCode
- Créez de petits projets personnels (calculatrice, quiz, to-do list)
- Apprenez la Programmation Orientée Objet (POO)
- Découvrez les tests unitaires pour valider votre code
Le secret de l'apprentissage : pratiquer, pratiquer, pratiquer ! Commencez par modifier les exemples de ce tutoriel, puis créez vos propres programmes. Chaque erreur est une occasion d'apprendre.