PC SOFT

DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Nouveauté WINDEV Mobile 27 !
  • Ce que vous allez apprendre dans cette leçon
  • Présentation
  • Exemple pratique
  • L'instruction SI
  • L'instruction SELON
Leçon 3.5. Les instructions conditionnelles
Ce que vous allez apprendre dans cette leçon
  • L'instruction SI.
  • L'instruction SELON.
Durée de la leçon

Durée estimée : 20 mn
Leçon précédenteSommaireLeçon suivante
Présentation
Le WLangage est une suite d'instructions manipulant des données.
Les instructions conditionnelles permettent de comparer des variables et/ou des valeurs entre elles afin de faire des traitements différents. Il existe plusieurs instructions conditionnelles :
  • SI... ALORS... SINON... FIN
  • SELON ...

Exemple pratique

Pour réaliser les manipulations de cette leçon, nous allons reprendre le projet "WLangage" que nous avons utilisé dans la leçon précédente. Le principe est toujours le même : le code exemple va être saisi directement dans l'événement "Initialisation" du projet.

  • Ouvrez si nécessaire le projet "WLangage" que vous avez créé dans la première leçon de cette partie (consultez le paragraphe Un projet pour découvrir le WLangage de la leçon 3.2).
  • Pour afficher les événements WLangage liés au projet :
    1. Dans la barre des éléments ouverts, faites un clic droit sur le bouton "P". Le menu contextuel s'affiche.
    2. Sélectionnez l'option "Code de l'élément".
    3. L'éditeur de code affiche les différents événements associés au projet.
L'instruction SI
Cette instruction permet d'exécuter un traitement ou un autre en fonction du résultat d'une expression. Si l'expression est vérifiée, un traitement est lancé ; si l'expression n'est pas vérifiée, un autre traitement peut être lancé.
L'instruction SI s'utilise comme ci-dessous :
SI <Expression à vérifier> ALORS
  Traitement à exécuter dans le cas où l'expression est vérifiée
SINON
  Traitement à exécuter dans le cas contraire
FIN

  • Nous allons tester cette instruction grâce à un exemple simple de code WLangage :
    1. Supprimez si nécessaire le code WLangage présent dans l'événement "Initialisation" du projet et copiez le code suivant.
      Ce code sélectionne un nombre au hasard et selon la valeur affiche un message.
      NombreAléatoire est un entier
      // Initialise le générateur de nombre aléatoire
      InitHasard()
      // Prend un nombre au hasard entre 100 et 4000
      NombreAléatoire = Hasard(100, 4000)
      Trace("Valeur du nombre aléatoire " + NombreAléatoire)
      // Vérifie si ce nombre est supérieur strictement à 2000
      SI NombreAléatoire > 2000 ALORS
      Trace("Nombre supérieur à 2000")
      SINON
      Trace("Nombre inférieur ou égal à 2000")
      FIN
      Dans ce code, l'expression à vérifier correspond à "NombreAléatoire>2000".
    2. Testons immédiatement ce code  : cliquez sur Tester le projet parmi les boutons d'accès rapide.
    3. Affichez si nécessaire le volet "Trace du débogueur" pour voir le résultat : Sous le volet "Accueil", dans le groupe "Environnement", déroulez "Volets" et sélectionnez "Trace du débogueur".
    4. Le volet "Trace du débogueur" contiendra le message correspondant à votre cas (le nombre étant aléatoire, le message peut changer à chaque test !).
Remarque : L'instruction SI peut également être présentée sous forme d'une seule ligne grâce à l'instruction "? ... SINON" (l'instruction est ici sur 2 lignes car elle ne rentre pas dans la page !) :
<Expression à vérifier> ? <Traitement si expression vérifiée>
SINON <Traitement dans le cas contraire>
Cette instruction est une forme abrégée de l'instruction SI ... ALORS ... SINON : elle prend moins de place, mais elle est peut être moins simple à comprendre.
Pour notre exemple, le code devient :
// Instruction conditionnelle monoligne
Trace(NombreAléatoire > 2000 ? "Nombre supérieur à 2000" SINON "Nombre inférieur ou égal à 2000")


  • Dans une instruction SI, il est également possible de cumuler ou non les conditions grâce aux mots-clés ET et OU. Voici quelques exemples simples que vous pouvez tester directement.
    • Condition composée avec le mot-clé ET : Permet de savoir si deux conditions sont respectées. Les deux conditions sont évaluées.
      // Condition composée (mots-clés ET et OU)
      Condition1 est un booléen = Faux
      Condition2 est un booléen = Vrai
      // - mot-clé ET
      SI Condition1 ET Condition2 ALORS
      Trace("Condition1 ET Condition2 : <vrai>")
      SINON
      Trace("Condition1 ET Condition2 : <faux>")
      FIN

      En lançant à nouveau le test du projet, vous obtiendrez dans le volet "Trace du débogueur" :
      Condition1 ET Condition2 : <faux>
    • Condition composée avec le mot-clé OU : Permet de de tester si l'une ou l'autre des conditions sont respectées. Là aussi, les deux conditions sont évaluées.
      Condition1 est un booléen = Faux
      Condition2 est un booléen = Vrai
       
      SI Condition1 OU Condition2 ALORS
      Trace("Condition1 OU Condition2 : <vrai>")
      SINON
      Trace("Condition1 OU Condition2 : <faux>")
      FIN

      En lançant à nouveau le test du projet, vous obtiendrez dans le volet "Trace du débogueur" :
      Condition1 OU Condition2 : <vrai>

      Note

      Il est possible de ne pas évaluer la seconde condition si la première condition est fausse : il suffit d'utiliser le mot-clé _ET_. Par exemple :
      Condition1 est un booléen = Faux
      Condition2 est un booléen = Vrai
       
      SI Condition1 _ET_ Condition2 ALORS
      Trace("Condition1 _ET_ Condition2 : <vrai>")
      SINON
      Trace("Condition1 _ET_ Condition2 : <faux>")
      FIN

      En lançant à nouveau le test du projet, vous obtiendrez dans le volet "Trace du débogueur" :
      Condition1 _ET_ Condition2 : <faux>
      De la même manière, en utilisant le mot-clé _OU_, si la première partie de l'expression est vraie, la suite de l'expression n'est pas évaluée.
Pour plus de détails, consultez Instruction SI.
L'instruction SELON
Cette instruction permet d'évaluer une expression et d'exécuter un traitement pour chaque valeur possible de l'expression.
L'instruction SELON s'utilise comme ci-dessous :
SELON <Expression>
CAS Valeur 1 :
Traitement 1
CAS Valeur 2 :
Traitement 2
...
CAS Valeur N :
Traitement N

AUTRES CAS
Traitement
FIN

  • Nous allons écrire un petit code WLangage afin de tester cette instruction :
    1. Supprimez si nécessaire le code WLangage présent dans l'événement "Initialisation" du projet et copiez le code suivant. Ce code récupère la date du jour et selon sa valeur affiche un message différent. Pour le 1er et le 15 du mois, un message spécifique est affiché. Dans les autres cas, la date du jour est affichée.
      // Par défaut, la variable de type Date est initialisée avec la date du jour
      LaDateDuJour est une Date
       
      // Teste le jour de la date
      SELON LaDateDuJour.Jour
      // 1er jour du mois
      CAS 1 : Trace("Nous sommes le premier jour du mois.")
      // 15ème jour du mois
      CAS 15 : Trace("Nous sommes le 15 du mois.")
      // Pour toutes les autres jours, affiche la date
      AUTRES CAS : Trace("Nous sommes le : " + LaDateDuJour.VersChaîne())
      FIN

      Note

      Le WLangage est composé de fonctions et de propriétés. Les fonctions peuvent attendre des paramètres et renvoient des résultats. Les propriétés sont directement appliquées aux champs ou aux variables grâce à la syntaxe :
      <Nom du champ ou de la variable>.<Nom de la propriété>
      Dans notre exemple, la propriété Jour est utilisée sur la variable LaDateDuJour pour obtenir le jour de la date.
    2. Testons immédiatement ce code  : cliquez sur Tester le projet parmi les boutons d'accès rapide.
    3. Le volet "Trace du débogueur" contiendra le message correspondant à votre cas (selon la date du jour, le message peut changer !). Par exemple, si le test est lancé le 28/11/2021 :
      Nous sommes le : 28/11/2021
Remarques :
  • Si la ligne de code "CAS 1:..." est exécutée, les autres lignes de code correspondant aux valeurs possibles ne sont pas exécutées.
  • Il est possible de regrouper dans le même cas plusieurs valeurs. Les différentes valeurs sont séparées par une virgule. Par exemple, pour tester le mois de la date, il est possible de compléter notre code WLangage par les lignes suivantes :
    SELON LaDateDuJour.Mois
    // Les mois 1, 2 et 3
    CAS 1, 2, 3 : Trace("Nous sommes au premier trimestre de l'année.")
    // Les mois compris entre 4 et 6
    CAS 4 <= * <= 6 : Trace("Nous sommes au deuxième trimestre de l'année.")
    // Les mois après le sixième mois
    CAS > 6 : Trace("Nous sommes au second semestre de l'année.")
    FIN

    En lançant à nouveau le test du projet, vous obtiendrez dans le volet "Trace du débogueur" pour le 28/11/2021 :
    Nous sommes le : 28/11/2021
    Nous sommes au second semestre de l'année.
  • Il est possible d'exécuter plusieurs lignes de code lors du traitement correspondant à une valeur de l'expression. Dans ce cas, la syntaxe à utiliser est la suivante :
    SELON <Expression>
    CAS Valeur 1 :
    Traitement 1 - Ligne de code 1
    Traitement 1 - Ligne de code 2
    CAS Valeur N :
    Traitement N - Ligne de code 1
    Traitement N - Ligne de code 2
    AUTRES CAS
    Traitement
    FIN
Pour plus de détails, consultez Instruction SELON.
Leçon précédenteSommaireLeçon suivante
Version minimum requise
  • Version 27
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire