DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / WLangage / Syntaxe WLangage / Opérateurs
  • Utilisation
  • Utilisation du mode optimisé par défaut
  • Règles
  • Notes
  • Variable numérique
  • Variable chaîne
  • Priorité
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
Opérateurs logiques
Utilisation
Les opérateurs logiques sont les suivants :
  • ET
Multiplication logique. Les conditions composées de ET sont toujours évaluées dans leur totalité (même si la première condition est fausse).
  • _ET_
Multiplication logique. Les conditions composées de _ET_ sont évaluées de manière optimisée. Si la première partie de l'expression est fausse, la suite de l'expression n'est pas évaluée.
  • OU
Addition logique. Les conditions composées de OU sont toujours évaluées dans leur totalité (même si la première condition est vraie).
  • _OU_
Addition logique. Les conditions composées de _OU_ sont évaluées de manière optimisée. Si la première partie de l'expression est vraie, la suite de l'expression n'est pas évaluée.
  • PAS
Négation logique.
  • DANS
Correspond à la combinaison des opérateurs OU et '='. DANS permet d'effectuer une comparaison d'un élément par rapport à une liste d'expressions. Toutes les expressions de la liste sont évaluées. Pour plus de détails, consultez Instruction SI.
  • _DANS_
Correspond à la combinaison des opérateurs OU et '='. _DANS_ permet d'effectuer une comparaison optimisée d'un élément par rapport à une liste d'expressions. Les expressions de la liste sont évaluées de gauche à droite. Dès qu'une expression remplie la condition, le reste des expressions n'est pas évalué. Pour plus de détails, consultez Instruction SI.
Les opérateurs logiques permettent d'effectuer des opérations logiques et de construire des conditions.
SI Client.Ville = "Montpellier" ET Client.Civilité = "Monsieur" ALORS
HommeMontpellier ++ // Nombre d'hommes habitant à Montpellier
FIN
SI Client.Ville = "Montpellier" OU Client.Ville = "Lyon" ALORS
MontpellierLyon ++ // Nombre de clients habitant soit à Montpellier,
// soit à Lyon
FIN
Nouveauté 2024
Utilisation du mode optimisé par défaut
A partir de la version 2024, il est possible d'utiliser le mode optimisé des opérateurs ET, OU et DANS par défaut (sans utiliser la syntaxe _ET_, _OU_ et _DANS_).
Il suffit pour cela d'activer l'option "Optimisation évaluation optimisée des expressions booléennes (ET, OU, DANS)" dans l'onglet "Compilation" de la fenêtre de description du projet (voir Description du projet : Onglet Compilation).
Remarque : Cette option est automatiquement activée dans tous les nouveaux projets créés à partir de la version 2024.
Règles
Vrai ET Vrai : retourne Vrai (idem _ET_)
Vrai ET Faux : retourne Faux(idem _ET_)
Vrai OU Vrai : retourne Vrai(idem _OU_)
Vrai OU Faux : retourne Vrai(idem _OU_)
PAS Vrai : retourne Faux
Notes

Variable numérique

Si une variable numérique est manipulée comme un opérateur logique (booléen), "0" est équivalent à Faux. Toute autre valeur est équivalente à Vrai.
Par exemple, les deux lignes de code suivantes sont équivalentes :
SI NumTest ALORS ...
SI NumTest <> 0 ALORS ...
La première syntaxe (SI NumTest ALORS) doit être préférée à la seconde syntaxe.

Variable chaîne

Si une variable chaîne est manipulée comme un opérateur logique, une erreur du WLangage sera générée.
Par exemple, la syntaxe : "SI ChTest ALORS" retournera une erreur lors de l'exécution (mais pas lors de la compilation du projet).

Priorité

Les opérateurs ET et OU, _ET_ et _OU_ ont la même priorité. Pour donner des priorités à ces opérateurs, il suffit de mettre des parenthèses.
Par exemple :
SI (A = 2 ET B > 3) OU (A = 2 ET B < 0) ALORS ...
Exceptions :
  • Dans les filtres SQL et les requêtes SQL, l'opérateur ET est prioritaire sur l'opérateur OU.
    Par exemple :
    Condition1 ET Condition2 OU Condition3

    sera évalué ainsi :
    (Condition1 ET Condition2) OU Condition3
  • L'addition logique optimisée _OU_ ne doit pas être utilisée si une des expressions à comparer utilise le résultat d'une fonction pouvant renvoyer NULL.
    Par exemple, la comparaison suivante :
    SI AppelFonction() = "Valeur1" _OU_ AppelFonction() = "Valeur2" ALORS...

    devra être remplacée par le code suivant si la fonction AppelFonction peut renvoyer la valeur NULL :
    SI AppelFonction() = "Valeur1" OU AppelFonction() = "Valeur2" ALORS...
Version minimum requise
  • Version 9
Documentation également disponible pour…
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire

Dernière modification : 03/05/2024

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