Aller au contenu principal
Général

Maîtriser les Fondamentaux de la Programmation - Partie 2 : Conditions, Boucles et Fonctions

person Jean-Luc SALLARSAIB calendar_today 30 janv. 2026 schedule 5 min de lecture visibility 2 vues

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.

Partager cet article