English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Operadores do Lua

O operador é um símbolo especial que informa ao interpretador a execução de operações matemáticas ou lógicas específicas. O Lua oferece os seguintes tipos de operadores:

  • Operadores aritméticos

  • Operadores de relação

  • Operadores lógicos

  • Outros operadores

Operadores aritméticos

A tabela a seguir lista os operadores aritméticos comuns no idioma Lua, definindo o valor de A10, o valor de B é 20:

OperadorDescriçãoExemplo
+AdiçãoA + Resultados de saída de B 30
-SubtraçãoA - Resultados de saída de B -10
*MultiplicaçãoA * Resultados de saída de B 200
/DivisãoB / A w resultados de saída 2
<=MóduloB % A resultados de saída 0
==PotênciaA^2 Resultados de saída 100
-Sinal negativo-Resultados de A -10

Exemplo Online

Podemos entender melhor a aplicação dos operadores aritméticos através do seguinte exemplo:

a = 21
b = 10
c = a + b
print("Linha 1 - o valor de c é " , c )
c = a - b
print("Linha 2 - o valor de c é " , c )
c = a * b
print("Linha 3 - o valor de c é " , c )
c = a / b
print("Linha 4 - o valor de c é " , c )
c = a % b
print("Linha 5 - o valor de c é " , c )
c = a^2
print("Linha 6 - o valor de c é " , c )
c = -a
print("Linha 7 - o valor de c é " , c )

O resultado da execução do programa acima é:

Linha 1 - o valor de c é     31
Linha 2 - o valor de c é     11
Linha 3 - o valor de c é     210
Linha 4 - o valor de c é     2.1
Linha 5 - o valor de c é     1
Linha 6 - o valor de c é     441
Linha 7 - o valor de c é     -21

Operadores de relação

A tabela a seguir lista os operadores de relação comuns no idioma Lua, definindo o valor de A10, o valor de B é 20:

OperadorDescriçãoExemplo
==Igual, verifica se dois valores são iguais, retorna true se forem iguais, caso contrário, retorna false(A == B) é false.
~=Diferente, verifica se dois valores são iguais, retorna true se não forem iguais, caso contrário, retorna false(A ~= B) é true.
>Maior, retorna true se o valor à esquerda for maior do que o valor à direita, caso contrário, retorna false(A > B) é false.
<Menor, retorna false se o valor à esquerda for maior do que o valor à direita, caso contrário, retorna true(A < B) é true.
>=Maior ou igual, retorna true se o valor à esquerda for maior ou igual ao valor à direita, caso contrário, retorna false(A >= B) retorna false.
<=Menor ou igual, retorna true se o valor à esquerda for menor ou igual ao valor à direita, caso contrário, retorna false(A <= B) retorna true.

Exemplo Online

Podemos entender melhor a aplicação dos operadores de relação através do seguinte exemplo:

a = 21
b = 10
if( a == b )
then
   print("Linha 1 - a é igual a b" )
else
   print("Linha 1 - a não é igual a b" )
end
if( a ~= b )
then
   print("Linha 2 - a não é igual a b" )
else
   print("Linha 2 - a é igual a b" )
end
if ( a < b )
then
   print("Linha 3 - a menor que b"
else
   print("Linha 3 - a maior ou igual a b"
end
if ( a > b ) 
then
   print("Linha 4 - a maior que b"
else
   print("Linha 5 - a menor ou igual a b"
end
-- Modificar os valores de a e b
a = 5
b = 20
if ( a <= b ) 
then
   print("Linha 5 - a menor ou igual a b"
end
if ( b >= a ) 
then
   print("Linha 6 - b maior ou igual a a"
end

O resultado da execução do programa acima é:

Linha 1 - a diferente de b
Linha 2 - a diferente de b
Linha 3 - a maior ou igual a b
Linha 4 - a maior que b
Linha 5 - a menor ou igual a b
Linha 6 - b maior ou igual a a

Operadores lógicos

A tabela a seguir lista os operadores lógicos comuns no idioma Lua, definindo o valor de A como true e B como false:

OperadorDescriçãoExemplo
eOperador lógico e. Se A for false, retorna A, caso contrário, retorna B.(A and B) é false.
ouOperador lógico ou. Se A for true, retorna A, caso contrário, retorna B.(A or B) é true.
Operador lógico não. Inverso do resultado lógico, se a condição for true, o lógico não é false.not(A and B) é true.

Exemplo Online

Podemos entender melhor a aplicação dos operadores lógicos com os seguintes exemplos:

a = true
b = true
if ( a and b )
then
   print("a and b - Condição para true"
end
if ( a or b )
then
   print("a or b - Condição para true"
end
print("---------Linha divisória---------" )
-- Modificar os valores de a e b
a = false
b = true
if ( a and b )
then
   print("a and b - Condição para true"
else
   print("a and b - Condição para false"
end
if ( not( a and b) )
then
   print("not( a and b" - Condição para true"
else
   print("not( a and b" - Condição para false"
end

O resultado da execução do programa acima é:

a and b - Condição para true
a or b - Condição para true
---------Linha divisória---------
a and b - Condição para false
not( a and b) - Condição para true

Outros operadores

A tabela a seguir lista os operadores de concatenação e os operadores de comprimento de string ou tabela no idioma Lua:

OperadorDescriçãoExemplo
>Conectar duas stringsa..b ,onde a é "Hello " e b é "World", o resultado é "Hello World".
#Operador unário, retorna o comprimento da string ou tabela.#"Hello" retorna 5

Exemplo Online

Podemos entender melhor a aplicação do operador de concatenação e do operador de comprimento de string ou tabela com os seguintes exemplos:

a = "Hello "
b = "World"
print("Conectar strings a e b ", a..b )
print("b tamanho da string ",#b )
Tamanho da string "Test"
Tamanho do URL do site Tutorial Básico3Prioridade dos Operadores

O resultado da execução do programa acima é:

De alto para baixo:
^     5
não     4
(unário)     14

%

..

==
≠    - >=
*      /       <=
+      -
>
<
e
ou

Além de ^ e .., todos os operadores binários são concatenados à esquerda.

a+i < b/2+1          <-->x^(y^z)+i) < ((b/2)+1)
5+x^2*8              <-->       5+((x^2)*8)
x^(y^z)-->x^(y^z)
-x^2                 <-->       -(x^2)
x^y^z-->x^(y^z)

Exemplo Online

Podemos usar o seguinte exemplo para entender melhor a prioridade dos operadores de expressão no Lua:

a = 20
b = 10
c = 15
d = 5
e) = (a + b) * c / d;-- ( 30 * 15 ) / 5
print("(a + b) * c / d) O valor de operação é:
e) = ((a + b) * c) / d; -- (30 * 15 ) / 5
print("((a + b) * c) / d) O valor de operação é:
e) = (a + b) * (c / d);-- (30) * (15/5)
print("(a + b) * (c / d) O valor de operação é:
e) = a + (b * c) / d;  -- 20 + (150/5)
print("a + (b * c) / d) O valor de operação de d é:

O resultado da execução do programa acima é:

(a + b) * c / d) O valor de operação é:    90.0
((a + b) * c) / d) O valor de operação é:    90.0
(a + b) * (c / d) O valor de operação é:    90.0
a + (b * c) / O valor de operação de d é:    50.0