Les Structures Conditionnelles en PowerShell – Part 1.5

Les structures conditionnelles en PowerShell
Les structures conditionnelles en PowerShell

Introduction

Les structures conditionnelles en PowerShell sont des outils essentiels pour contrôler le flux d’exécution d’un script en fonction de conditions spécifiques. Dans cet article, nous explorerons en détail ces structures en utilisant l’exemple d’un système de gestion d’inventaire pour une bibliothèque numérique.

If : Vérification simple des conditions

La structure if est utilisée pour exécuter un bloc de code si une condition est vraie.

Syntaxe de base

if (condition) {
    # Code à exécuter si la condition est vraie
}

Exemple détaillé

function Verifier-DisponibiliteLivre($titre, $nombreExemplaires) {
    if ($nombreExemplaires -gt 0) {
        Write-Host "Le livre '$titre' est disponible avec $nombreExemplaires exemplaire(s)."
        return $true
    }
    Write-Host "Le livre '$titre' n'est pas disponible actuellement."
    return $false
}

Verifier-DisponibiliteLivre "1984" 3
Verifier-DisponibiliteLivre "Dune" 0

Dans cet exemple, la fonction vérifie si un livre est disponible en fonction du nombre d’exemplaires. Elle utilise une structure if simple pour déterminer la disponibilité et retourne un booléen en conséquence.

If-Else : Gestion des alternatives

La structure if-else permet d’exécuter un bloc de code alternatif lorsque la condition initiale n’est pas remplie.

Syntaxe

if (condition) {
    # Code si la condition est vraie
} else {
    # Code si la condition est fausse
}

Exemple élaboré

function Categoriser-Livre($titre, $anneePublication) {
    if ($anneePublication -lt 1900) {
        $categorie = "Classique ancien"
    } elseif ($anneePublication -ge 1900 -and $anneePublication -lt 2000) {
        $categorie = "Classique moderne"
    } else {
        $categorie = "Contemporain"
    }

    Write-Host "Le livre '$titre' publié en $anneePublication est catégorisé comme : $categorie"
}

Categoriser-Livre "Pride and Prejudice" 1813
Categoriser-Livre "1984" 1949
Categoriser-Livre "The Da Vinci Code" 2003

Cette fonction utilise une structure if-elseif-else pour catégoriser les livres en fonction de leur année de publication, démontrant comment gérer plusieurs conditions alternatives.

Switch : Gestion de multiples conditions

La structure switch est idéale pour gérer de multiples conditions de manière concise.

Syntaxe de base

switch (expression) {
    valeur1 { action1 }
    valeur2 { action2 }
    default { actionParDefaut }
}

Exemple avancé

function Evaluer-EtatLivre($titre, $etat) {
    $action = switch ($etat) {
        "Neuf" { "Mettre en rayon principal" }
        "Bon" { "Mettre en rayon secondaire" }
        "Usé" { "Envoyer en réparation" }
        "Très usé" { "Considérer le remplacement" }
        default { "Évaluation manuelle requise" }
    }

    Write-Host "Pour le livre '$titre' en état '$etat': $action"
}

Evaluer-EtatLivre "Le Petit Prince" "Neuf"
Evaluer-EtatLivre "Harry Potter" "Bon"
Evaluer-EtatLivre "Le Seigneur des Anneaux" "Très usé"
Evaluer-EtatLivre "Moby Dick" "Détérioré"

Cette fonction utilise un switch pour déterminer l’action à entreprendre en fonction de l’état d’un livre, montrant comment gérer efficacement plusieurs cas distincts.

Techniques avancées

Opérateur ternaire

PowerShell ne possède pas d’opérateur ternaire natif, mais on peut simuler un comportement similaire :

function Verifier-Disponibilite($titre, $enStock) {
    $statut = $enStock ? "disponible" : "indisponible"
    Write-Host "Le livre '$titre' est $statut."
}

Verifier-Disponibilite "1984" $true
Verifier-Disponibilite "Brave New World" $false

Switch avec expressions régulières

function Categoriser-ISBN($isbn) {
    switch -regex ($isbn) {
        '^978-0' { "Livre anglophone" }
        '^978-2' { "Livre francophone" }
        '^978-3' { "Livre germanophone" }
        default { "Origine non déterminée" }
    }
}

Write-Host (Categoriser-ISBN "978-0-306-40615-7")
Write-Host (Categoriser-ISBN "978-2-7654-1005-6")

Cette fonction utilise des expressions régulières dans un switch pour catégoriser les livres selon leur ISBN.

If avec groupement de conditions

function Verifier-EligibilitePret($age, $abonnementValide, $livresEmpruntes) {
    if (($age -ge 18 -or ($age -ge 12 -and $abonnementValide)) -and $livresEmpruntes -lt 5) {
        Write-Host "Éligible pour un nouvel emprunt."
    } else {
        Write-Host "Non éligible pour un nouvel emprunt."
    }
}

Verifier-EligibilitePret 20 $true 3
Verifier-EligibilitePret 15 $true 2
Verifier-EligibilitePret 30 $true 6

Cette fonction démontre l’utilisation de conditions complexes groupées dans une structure if.

Les structures conditionnelles en PowerShell
Les structures conditionnelles en PowerShell

Conclusion

Les structures conditionnelles en PowerShell offrent une grande flexibilité pour gérer différentes situations dans un système de gestion de bibliothèque. En maîtrisant ces structures, vous pouvez créer des scripts robustes et efficaces pour automatiser diverses tâches de gestion et de prise de décision.

Liens internes

Liens externes

Comments

No comments yet. Why don’t you start the discussion?

    Laisser un commentaire

    Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *