Opérateurs Lua
Les opérateurs sont des symboles spéciaux qui indiquent à l'interpréteur d'effectuer des opérations mathématiques ou logiques spécifiques. Lua fournit les types d'opérateurs suivants :
- Opérateurs arithmétiques
- Opérateurs relationnels
- Opérateurs logiques
- Autres opérateurs
Opérateurs arithmétiques
Le tableau suivant répertorie les opérateurs arithmétiques courants du langage Lua. Supposons que la valeur de A est 10 et que la valeur de B est 20 :
| Operator | Description | Exemple |
|---|---|---|
| + | Addition | A + B donne 30 |
| - | Soustraction | A - B donne -10 |
| * | Multiplication | A * B donne 200 |
| / | Division | B / A donne 2 |
| % | Modulo | B % A donne 0 |
| ^ | Exponentiation | A^2 donne 100 |
| - | Signe négatif | -A donne -10 |
| // | Opérateur de division entière (>=lua5.3) | 5//2Donne 2 |
Exemples
Nous pouvons mieux comprendre l'application des opérateurs arithmétiques à travers les exemples suivants :
Exemples
b = 10
c = a + b
print("Ligne 1 - La valeur de c est ", c )
c = a - b
print("Ligne 2 - La valeur de c est ", c )
c = a * b
print("Ligne 3 - La valeur de c est ", c )
c = a / b
print("Ligne 4 - La valeur de c est ", c )
c = a % b
print("Ligne 5 - La valeur de c est ", c )
c = a^2
print("Ligne 6 - La valeur de c est ", c )
c = -a
print("Ligne 7 - La valeur de c est ", c )
La sortie du programme ci-dessus est :
Line 1 - c 的值为 31 Line 2 - c 的值为 11 Line 3 - c 的值为 210 Line 4 - c 的值为 2.1 Line 5 - c 的值为 1 Line 6 - c 的值为 441 Line 7 - c 的值为 -21
En Lua,// est utilisé pour les opérations de division, et le résultat du calcul inclut la partie décimale.//// est utilisé pour les opérations de division entière, et le résultat du calcul n'inclut pas la partie décimale :
Exemples
b = 2
print("Opération de division - La valeur de a/b est ", a / b )
print("Opération de division entière - La valeur de a//b est ", a // b )
La sortie du programme ci-dessus est :
除法运算 - a/b 的值为 2.5 整除运算 - a//b 的值为 2
Opérateurs relationnels
Le tableau suivant répertorie les opérateurs relationnels courants du langage Lua. Supposons que la valeur de A soit 10 et la valeur de B soit 20 :
| Operator | Description | Exemple |
|---|---|---|
| == | Égal à, vérifie si deux valeurs sont égales. Si elles sont égales, renvoie true ; sinon, renvoie false. | (A == B) est faux. |
| ~= | Différent de, vérifie si deux valeurs sont égales. Si elles ne sont pas égales, renvoie true ; sinon, renvoie false. | (A ~= B) est vrai. |
| > | Supérieur à, si la valeur de gauche est supérieure à la valeur de droite, renvoie true ; sinon, renvoie false. | (A > B) est faux. |
| < | Inférieur à, si la valeur de gauche est supérieure à la valeur de droite, renvoie false ; sinon, renvoie true. | (A < B) est vraie. |
| >= | Supérieur ou égal à, si la valeur de gauche est supérieure ou égale à la valeur de droite, renvoie true ; sinon, renvoie false. | (A >= B) renvoie false. |
| <= | Inférieur ou égal à, si la valeur de gauche est inférieure ou égale à la valeur de droite, renvoie true ; sinon, renvoie false. | (A <= B) renvoie true. |
Exemples
Nous pouvons mieux comprendre l'application des opérateurs relationnels à travers les exemples suivants :
Exemples
b = 10
if( a == b )
puis
print("Ligne 1 - a est égal à b" )
else
print("Ligne 1 - a n'est pas égal à b" )
end
if( a ~= b )
puis
print("Ligne 2 - a n'est pas égal à b" )
else
print("Ligne 2 - a est égal à b" )
end
if ( a < b )
puis
print("Ligne 3 - a est inférieur à b" )
else
print("Ligne 3 - a est supérieur ou égal à b" )
end
if ( a > b )
puis
print("Ligne 4 - a est supérieur à b" )
else
print("Ligne 5 - a est inférieur ou égal à b" )
end
-- Modifiez les valeurs de a et b
a = 5
b = 20
if ( a <= b )
puis
print("Ligne 5 - a est inférieur ou égal à b" )
end
if ( b >= a )
puis
print("Ligne 6 - b est supérieur ou égal à a" )
end
La sortie du programme ci-dessus est :
Line 1 - a 不等于 b Line 2 - a 不等于 b Line 3 - a 大于等于 b Line 4 - a 大于 b Line 5 - a 小于等于 b Line 6 - b 大于等于 a
Opérateurs logiques
Le tableau suivant répertorie les opérateurs logiques courants du langage Lua. Supposons que la valeur de A soit vraie et que la valeur de B soit fausse :
| Operator | Description | Exemple |
|---|---|---|
| et | Opérateur ET logique. Si A est faux, renvoie A ; sinon, renvoie B. | (A and B) est faux. |
| ou | Opérateur OU logique. Si A est vrai, renvoie A ; sinon, renvoie B. | (A or B) est vrai. |
| not | Opérateur NON logique. Il est l'opposé du résultat de l'opération logique. Si la condition est vraie, le NON logique est faux. | not(A and B) est vrai. |
Exemples
Nous pouvons mieux comprendre l'application des opérateurs logiques à travers les exemples suivants :
Exemples
b = vrai
if ( a and b )
puis
print("a and b - La condition est vraie" )
end
if ( a or b )
puis
print("a or b - La condition est vraie" )
end
print("---------Séparateur---------" )
-- Modifiez les valeurs de a et b
a = false
b = vrai
if ( a and b )
puis
print("a and b - La condition est vraie" )
else
print("a and b - La condition est fausse" )
end
if ( not( a and b) )
puis
print("not( a and b) - La condition est vraie" )
else
print("not( a and b) - La condition est fausse" )
end
La sortie du programme ci-dessus est :
a and b - 条件为 true a or b - 条件为 true ---------分割线--------- a and b - 条件为 false not( a and b) - 条件为 true
Autres opérateurs
Le tableau suivant répertorie les opérateurs de concaténation et les opérateurs permettant de calculer la longueur des tables ou des chaînes dans le langage Lua :
| Operator | Description | Exemple |
|---|---|---|
| .. | Concatène deux chaînes | a..b, où a est "Hello " et b est "World", le résultat de sortie est "Hello World". |
| # | Opérateur unaire qui renvoie la longueur d'une chaîne ou d'une table. | #"Hello" renvoie 5 |
Exemples
Nous pouvons mieux comprendre l'application des opérateurs de concaténation et des opérateurs de calcul de la longueur des tables ou des chaînes grâce aux exemples suivants :
Exemples
b = "World"
print("Concaténer les chaînes a et b ", a..b )
print("La longueur de la chaîne b ",#b )
print("La longueur de la chaîne Test ",#"Test" )
print("La longueur de l'URL du site de tutoriel Example ",#"www.example.com" )
La sortie du programme ci-dessus est :
连接字符串 a 和 b Hello World b 字符串长度 5 字符串 Test 长度 4 Example网址长度 14
Précédence des opérateurs
De la plus haute à la plus basse :
^ not - (unary) * / % + - .. < > <= >= ~= == and or
À l'exception de^et.., tous les autres opérateurs binaires sont associatifs à gauche.
a+i < b/2+1 <--> (a+i) < ((b/2)+1) 5+x^2*8 <--> 5+((x^2)*8) a < y and y <= z <--> (a < y) and (y <= z) -x^2 <--> -(x^2) x^y^z <--> x^(y^z)
Exemples
Nous pouvons mieux comprendre la précédence des opérateurs du langage Lua grâce aux exemples suivants :
Exemples
b = 10
c = 15
d = 5
e = (a + b) * c / d;-- ( 30 * 15 ) / 5
print("la valeur de l'opération (a + b) * c / d est :",e )
e = ((a + b) * c) / d; -- (30 * 15 ) / 5
print("la valeur de l'opération ((a + b) * c) / d est :",e )
e = (a + b) * (c / d);-- (30) * (15/5)
print("La valeur de l'opération (a + b) * (c / d) est :",e )
e = a + (b * c) / d; -- 20 + (150/5)
print("La valeur de l'opération a + (b * c) / d est :",e )
La sortie du programme ci-dessus est :
(a + b) * c / d 运算值为 : 90.0 ((a + b) * c) / d 运算值为 : 90.0 (a + b) * (c / d) 运算值为 : 90.0 a + (b * c) / d 运算值为 : 50.0Autres extensions