Opérateurs - Référence du Langage

AutoIt utilise les opérateurs d'affectation, mathématiques, de comparaison, et les opérateurs logiques suivants.


Opérateur Description

      Opérateurs d'affectation
=
Affectation, exemple: $vVar = 5     (affecte le nombre 5 à $vVar)
+=
Affectation avec addition. Exemple: $vVar += 1     (ajoute 1 à $vVar)
-=
Affectation avec soustraction.
*=
Affectation avec multiplication.
/=
Affectation avec division.

      Opérateur de concaténation
& Concatène/joint deux chaînes. Exemple: "un" & 10    (equals "un10")
&=
Affectation avec concaténation; Exemple: $vVar = "un", et puis $vVar &= 10    ($vVar est maintenant égal à "un10")

      Opérateurs mathématiques
+ Additionne deux nombres. Exemple: 10 + 20    (égale 30)
- Soustrait deux nombres. Exemple: 20 - 10    (égale 10)
Agit aussi comme un opérateur unaire (pour affecter une valeur négative à une variable).
* Multiplie deux nombres. Exemple: 20 * 10    (égale 200)
/ Divise deux nombres. Exemple: 20 / 10    (égale 2)
^ Elève un nombre à une puissance. Exemple: 2 ^ 4    (égale 16)

      Opérateurs de comparaison (insensible à la casse si utilisés avec des chaînes excepté pour ==)
= Teste si deux valeurs sont égales. Exemple: If $var = 5 Then    (vrai si $vVar égale 5). Insensible à la casse quand utilisé avec des chaînes.
== Teste si deux chaînes sont égales. Sensible à la casse. Les valeurs gauche et droite sont converties en chaînes si elles ne sont pas déjà des chaînes. Cet opérateur devrait être utilisé seulement si la comparaison des chaînes nécessite une sensibilité à la casse.
<> Teste si deux valeurs sont différentes. Insensible à la casse quand utilisé avec des chaînes. Pour que la comparaison soit sensible à la casse utilisez Not ("string1" == "string2")
> Teste si la première valeur est plus grande que la seconde. Les chaînes sont comparées dans l'ordre lexicographique même si le contenu de la chaîne semble être numérique.
>= Teste si la première valeur est plus grande ou égale que la seconde. Les chaînes sont comparées dans l'ordre lexicographique même si le contenu de la chaîne semble être numérique.
< Teste si la première valeur est plus petite que la seconde. Les chaînes sont comparées dans l'ordre lexicographique même si le contenu de la chaîne semble être numérique.
<= Teste si la première valeur est plus petite ou égale que la seconde. Les chaînes sont comparées dans l'ordre lexicographique même si le contenu de la chaîne semble être numérique.

      Opérateurs logiques
And Conjonction logique. Exemple: If $vVar = 5 And $vVar2 > 6 Then    (Vrai si $vVar égale 5 et $vVar2 est plus grand (strictement) que 6)
Or Disjonction logique. Exemple: If $vVar = 5 Or $vVar2 > 6 Then    (Vrai si $vVar égale 5 ou $vVar2 est plus grand (strictement) que 6)
Not Négation logique. Exemple: Not 1    (False)

      Conditional operator
? : Choix suivant une expression. Exemple: $condition ? $expression1 : $expression2    ($expression1 si $condition est vraie ou $expression2 si fausse) Voir l'opérateur Ternary pour un exemple.

Lorsque plus d'un opérateur logique est utilisé dans une expression, l'ordre dans lequel les choses se passe est controlé par la Priorité des opérateurs. La priorité utilisée dans AutoIt est donnée ci-dessous. Là où deux opérateurs ont la même priorité l'expression est évaluée de la Gauche vers la Droite.

De la priorité la plus haute à la plus basse :

    Not
    ^
    * /
    + -
    &
    < > <= >= = <> ==

    And Or



Exempe: 2 + 4 * 10 est égal à 42:

    4 * 10    (égale 40)

    2 + 40    (égale 42)

Comme la multiplication * a une priorité plus haute que + elle est effectuée avant l'addition.


Vous pouvez utiliser des parenthèses pour obliger une partie de l'expression à être évaluée en premier.

Exemple: (2 + 4) * 10 égale 60.


Notez ceci, lorsque vous utilisez les opérateurs logique AND, OR:

Exemple: If MyFunc1() Or MyFunc2() Then     (MyFunc2() n'est pas appelée si MyFunc1() retourne vrai)

e.g. If MyFunc1() And MyFunc2() Then    (MyFunc2() n'est pas appelée si MyFunc1() retourne faux)


Note: Prudence s'impose si vous comparez des types de données mixtes, comme lorsque vous utilisez l'opérateur de chaîne == sensible à la casse, les comparaisons mixtes sont généralement effectuées numériquement. La plupart des chaînes seront évaluées comme 0 et donc le résultat pourrait bien ne pas être celui attendu. Il est recommandé de forcer les éléments comparés dans le même type de données en utilisant les fonctions Number/String avant la comparaison.