DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / WLangage / Syntaxe WLangage / Instructions structurées
  • Sortir d'une instruction SELON
  • SELON avec test sur une condition
  • Mot-clé OU
  • Mot-clé AUTRE CAS
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget IOSApple WatchMac CatalystUniversal Windows 10 App
Autres
Procédures stockées
L'instruction conditionnelle SELON permet de choisir d'exécuter une action en fonction de la valeur d'une expression.
Deux syntaxes sont disponibles pour cette instruction :
  • Syntaxe complète.
  • Syntaxe simplifiée pour une valeur entière de valeurs consécutives.
Exemple
SELON Quantité
CAS 1 : Comment = "Profitez des promotions : 2 produits pour le prix d'un"
CAS 2 : Comment = "Vous achetez deux produits : vous n'en payez qu'un seul"
AUTRE CAS : Comment = ""
FIN
SELON Valeur
CAS 10 : Trace(10)
CAS 10<*<20 : Trace("Compris entre 10 et 20")
CAS >30 : Trace("Supérieur à 30")
FIN
SELON Quantité
CAS À 8: // Valeur inférieure ou égale à 8
Comment = "Un cadeau pour tout achat"
CAS 9,10: // Valeur égale à 9 ou 10
Comment = "Profitez des promotions : 2 produits pour le prix d'un"
CAS 11 À 20 // Valeur comprise entre 11 et 20 (inclus)
Comment = "Vous achetez deux produits : vous n'en payez qu'un seul"
CAS > 20: // Valeur supérieure à 20
Comment = ""
FIN
// Syntaxe simplifiée : Combo_Sel contient des chiffres de 1 à 5
// Selon le chiffre sélectionné, un prénom est affiché
Valeur est un entier = COMBO_sel[COMBO_sel]
Résultat1 est une chaîne = ""
Résultat1 = SELON (Valeur, "Zoé", "Emma", "Camille", "Frédéric", SINON "Pas trouvé")
Syntaxe

Syntaxe complète Masquer les détails

SELON <Variable de comparaison>
  CAS <Expression 1> : <Action 1>

  CAS <Expression 2> :
      <Action 2.1>
      <Action 2.2>

  CAS <Expression 3>
      <Action 3.1>
      <Action 3.2>
      <Action 3.3>

  CAS <Expression 4>, <Expression 5> : <Action 4>

  CAS <Expression 6>, <Expression 7> :
      <Action 5>

  CAS <Expression 8>, <Expression 9>
      <Action 6.1>
      <Action 6.2>

  CAS <Expression minimale> A: <Action 7>

  CAS A <Expression maximale> : <Action 8>

  CAS <Expression minimale> A <Expression maximale> : <Action 9>

  CAS [= / ~= / ~~ / [= / > />= / < / <= / [~ / [~~ ] <Expression 10> : <Action 10>

  CAS <Expression minimale> [<= * <=] [< * <=] [<= * <] [< * <]  <Expression maximale> : <Action 11>

  ...
  [
  AUTRE[S] CAS : <Action autre(s) cas>
  OU
  AUTRE[S] CAS :
  <Action autre(s) cas>
  OU
  AUTRE[S] CAS
  <Action autre(s) cas>
  ]
FIN
<SELON> :
Signale le début du bloc d'instructions.
<Variable de comparaison> :
Variable de comparaison (tout type).
<CAS> :
Différents cas de comparaison.
<Expression N> :
Valeur à comparer à la variable de comparaison (type identique à celui de la variable de comparaison).
<Action N> :
Action à lancer si l'expression correspondante est égale à la variable de comparaison. Après exécution de cette action, le traitement continue après le mot FIN.
<AUTRE[S] CAS> :
Action à lancer si la variable de comparaison n'est égale à aucune expression (optionnelle).
<FIN> :
Signale la fin du bloc d'instructions.

Syntaxe simplifiée pour une valeur entière de valeurs consécutives Masquer les détails

<Résultat> = SELON (<Valeur>, <Résultat 1>, <Résultat 2>, ... <Résultat 3> [SINON <Résultat Autre>])
<Résultat> = SELON (<Valeur>
      <Résultat 1>,
      <Résultat 2>,
      ...
      )
<Résultat> :
Valeur renvoyée par le SELON.
<SELON> :
Signale le début du bloc d'instructions.
<Valeur> :
Variable de comparaison (tout type).
<Résultat N> :
Valeur renvoyée. Renvoie <Résultat 1> si <Valeur> vaut 1, <Résultat 2> si <Valeur> vaut 2, ...
<SINON> :
Permet de traiter le cas où aucun résultat ne correspond à la valeur. Si ce cas n'est pas traité, une erreur WLangage est affichée.
<Résultat Autre> :
Valeur renvoyée si aucun résultat ne correspond à la valeur.
Remarques

Sortir d'une instruction SELON

L'instruction SORTIR SELON permet de sortir d'une instruction SELON et d'exécuter la suite du traitement.
La syntaxe est la suivante :
SELON <Expression>
CAS <VALEUR>
...
SI <Condition> ALORS
SORTIR SELON
FIN
FIN
Par exemple :
SELON Quantité
CAS 1
 SI Utilisateur = "Admin" ALORS
SORTIR SELON
 FIN
 Comment = "Profitez des promotions : 2 produits pour le prix d'un"
 
CAS 2 :
 SI Utilisateur = "Admin" ALORS
SORTIR SELON
 FIN
 Comment = "Vous achetez deux produits : vous n'en payez qu'un seul"
 
AUTRE CAS : Comment = ""
FIN

SELON avec test sur une condition

Il est possible dans une instruction SELON de tester le résultat d'une condition réalisée dans le CAS. Cette condition peut être par exemple une condition complexe, contenant des appels de fonctions, ...
Par exemple :
SELON Vrai
// Test d'une condition complexe
CAS Valeur1 = 10 ET Valeur2 = 20 : Trace(10)
// Test d'une condition sur une fonction
CAS VérifieCondition()
Remarque : pour un test sur une condition simple, il est conseillé d'utiliser la syntaxe suivante :
SELON Valeur
CAS 10 : Trace(10)
CAS 10<*<20 : Trace("Compris entre 10 et 20")
CAS >30 : Trace("Supérieur à 30")
FIN

Mot-clé OU

Il n'est pas possible d'utiliser le mot-clé OU pour comparer la valeur à une expression ou à une autre. Il faut utiliser la virgule. Par exemple, ne pas faire :
Ind est un entier = 2
SELON Ind
CAS 1 OU 2 : Info("cas 1 ou 2")
CAS 3 : Info("cas 3")
AUTRE CAS : Info("autre cas")
FIN
mais faire :
Ind est un entier = 2
SELON Ind
CAS 1,2 : Info("cas 1 ou 2")
CAS 3 : Info("cas 3")
AUTRE CAS : Info("autre cas")
FIN

Mot-clé AUTRE CAS

AUTRE CAS doit être la dernière instruction utilisée dans l'instruction conditionnelle SELON.
Champ Sélecteur : SELON automatique
Lors de la saisie sous l'éditeur de code de l'instruction SELON relative à un champ Sélecteur, l'éditeur de code ajoute automatiquement les CAS correspondant aux différentes options du champ Sélecteur. Le libellé de chaque option est ajouté automatiquement en commentaire de la ligne.
Quelques exemples :
  • Code pour un champ Sélecteur renvoyant un entier : la saisie de "SELON SEL_Civilité" sous l'éditeur de code affiche :
    Code pour un champ Sélecteur renvoyant un entier
  • Code pour un champ Sélecteur renvoyant une valeur : la saisie de "SELON SEL_PlatDuJour" sous l'éditeur de code affiche :
    Code pour un champ Sélecteur renvoyant une valeur
Version minimum requise
  • Version 9
Documentation également disponible pour…
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire

Dernière modification : 25/05/2022

Signaler une erreur ou faire une suggestion | Aide en ligne locale