Rust Basics Series #6 : Utiliser If Else


  • Français


  • Dans l’article précédent de cette série, vous avez examiné les fonctions. Dans cet article, examinons la gestion du flux de contrôle de notre programme Rust à l’aide d’instructions conditionnelles.

    Que sont les instructions conditionnelles ?

    Lors de l’écriture de code, l’une des tâches les plus courantes consiste à vérifier que certaines conditions sont true ou false. “Si la température est supérieure à 35°C, allumez le climatiseur.”

    En utilisant des mots clés comme if et else (parfois en combinaison), un programmeur peut modifier ce que fait le programme en fonction de conditions telles que le nombre d’arguments fournis, les options transmises depuis la ligne de commande, les noms de fichiers, l’occurrence d’erreurs, etc.

    Il est donc essentiel pour un programmeur de connaître le flux de contrôle dans n’importe quel langage, sans parler de Rust.

    Opérateurs conditionnels

    Le tableau suivant montre tous les opérateurs fréquemment utilisés pour une condition individuelle :

    Opérateur Exemple Interprétation
    > a > b a est plus grand que b
    < a < b a est moins que b
    == a == b a est égal pour b
    != a != b a est inégal pour b
    >= a >= b a est plus grand que OU égal pour b
    <= a <= b a est moins que OU égal pour b

    Et voici le tableau des opérateurs logiques, ils sont utilisés entre une ou plusieurs conditions :

    Opérateur Exemple Interprétation
    || (OU logique) COND1 || COND2 Au moins une des conditions COND1 ou COND2 évalue à true
    && (ET logique) COND1 && COND2 Tous les conditions évaluent à true
    ! (NON logique) !COND Valeur booléenne opposée de quoi COND évalue à

    📋

    Comme en mathématiques, vous pouvez utiliser des parenthèses (crochets ronds) pour spécifier la priorité d’une opération par rapport aux autres.

    Utiliser si sinon

    Pour gérer le flux de base du code Rust, deux mots clés sont utilisés : if et else. Cela vous aide à créer deux “chemins d’exécution” en fonction de l’état de la condition fournie.

    La syntaxe d’un simple bloc if avec un chemin d’exécution alternatif est la suivante :

    if condition {
        <statement(s)>;
    } else {
        <statement(s)>;
    }

    📋

    Lorsqu’une seule condition est fournie, la mettre entre parenthèses n’est pas obligatoire. L’utilisation de parenthèses est facultative, selon la syntaxe. Vous devez toujours les utiliser pour spécifier la priorité et pour une meilleure lisibilité.

    Prenons un exemple.

    fn main() {
        let a = 36;
        let b = 25;
    
        if a > b {
            println!("a is greater than b");
        } else {
            println!("b is greater than a");
        }
    }

    Ici, j’ai déclaré deux variables entières a et b avec les valeurs ’36’ et ’25’. A la ligne 5, je vérifie si la valeur stockée dans la variable a est supérieur à la valeur stockée dans la variable b. Si la condition est évaluée à true, le code de la ligne 6 sera exécuté. Si la condition est évaluée à falsedu fait que nous avons un else block (qui est facultatif), le code de la ligne 8 sera exécuté.

    Vérifions cela en regardant la sortie du programme.

    a is greater than b

    Parfait!

    Modifions la valeur de la variable a être inférieur à la valeur de la variable b et voyez ce qui se passe. je changerai aà ’10’. Voici la sortie après cette modification :

    b is greater than a

    Mais, que se passe-t-il si je stocke la même valeur dans des variables a et b? Pour voir cela, je vais définir la valeur des deux variables sur ’40’. Voici la sortie après cette modification particulière :

    b is greater than a

    Hein? Logiquement, cela n’a aucun sens… 🙁

    Mais cela peut être amélioré ! Continuer la lecture.

    Utiliser ‘else if’ conditionnel

    Comme tout autre langage de programmation, vous pouvez mettre un else if bloc pour fournir plus de deux chemins d’exécution. La syntaxe est la suivante :

    if condition {
        <statement(s)>;
    } else if condition {
        <statement(s)>;
    } else {
        <statement(s)>;
    }

    Maintenant, avec l’utilisation d’un else if bloc, je peux améliorer la logique de mon programme. Voici le programme modifié.

    fn main() {
        let a = 40;
        let b = 40;
    
        if a == b {
            println!("a and b are equal");
        } else if a > b {
            println!("a is greater than b");
        } else {
            println!("b is greater than a");
        }
    }

    Maintenant, la logique de mon programme est correcte. Il a traité tous les cas extrêmes (auxquels je peux penser). La condition où a est égal à b est traitée à la ligne 5. La condition où a pourrait être supérieur à b est traitée à la ligne 7. Et, la condition où a est inférieur à b est intrinsèquement géré par le else bloquer sur la ligne 9.

    Maintenant, lorsque j’exécute ce code, j’obtiens la sortie suivante :

    a and b are equal

    C’est parfait !

    Exemple : trouver le plus grand

    Je sais que l’utilisation de if et else est facile, mais regardons un autre programme. Cette fois, comparons trois nombres. Je vais également utiliser un opérateur logique dans ce cas !

    fn main() {
        let a = 73;
        let b = 56;
        let c = 15;
    
        if (a != b) && (a != c) && (b != c) {
            if (a > b) && (a > c) {
                println!("a is the greatest");
            } else if (b > a) && (b > c) {
                println!("b is the greatest");
            } else {
                println!("c is the greatest");
            }
        }
    }

    Cela peut sembler compliqué à première vue, mais n’ayez crainte ; Je vais vous expliquer ça !

    Au départ, je déclare trois variables a, b et c avec des valeurs aléatoires auxquelles je pouvais penser à ce moment-là. Ensuite, à la ligne 6, je vérifie la condition où aucune valeur de variable n’est identique à toute autre variable. Tout d’abord, je vérifie les valeurs de a et balors a et c et puis b et c. De cette façon, je peux être sûr qu’il n’y a pas de valeurs en double stockées dans l’une ou l’autre des variables.

    Ensuite, à la ligne 7, je vérifie si la valeur stockée dans la variable a est le plus grand. Si cette condition est évaluée à true, le code de la ligne 8 est exécuté. Sinon, le chemin d’exécution sur la ligne 9 est vérifié.

    A la ligne 9, je vérifie si la valeur stockée dans la variable b est le plus grand. Si cette condition est évaluée à true, le code de la ligne 10 est exécuté. Si cette condition est également false, alors cela ne signifie qu’une chose. Aucune variable ani variable b est le plus grand des 3.

    Alors naturellement, dans le else bloc, j’imprime que la variable c détient la plus grande valeur.

    Vérifions cela avec la sortie du programme :

    a is the greatest

    Et c’est comme prévu. Essayez de modifier les valeurs attribuées à chaque variable et testez-le vous-même ! 🙂

    Conclusion

    Vous avez appris à utiliser les instructions if et else. Avant de continuer à créer votre propre IA avec des déclarations perdues de if else-if (haha), découvrons les boucles dans Rust dans le prochain chapitre de la série.

    Restez à l’écoute.

    Source

    Houssen Moshinaly

    Pour contacter personnellement le taulier :

    Laisser un commentaire

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

    Copy code