Usina BRAdvPL Guia
Entrar
← CatálogoFUNDAMENTO

Operadores
AdvPL

Símbolos e palavras que realizam cálculos, comparações, atribuições e operações especiais em expressões AdvPL.

01

Matemáticos

Realizam cálculos numéricos.

** ou ^

Exponenciação.

*

Multiplicação.

/

Divisão.

%

Módulo: resto da divisão.

+

Adição ou sinal positivo.

-

Subtração ou sinal negativo.

EXEMPLO
Local nPotencia := 2 ^ 3     // 8
Local nProduto  := 6 * 4     // 24
Local nResto    := 10 % 3    // 1
02

Relacionais

Comparam valores e retornam um resultado lógico.

<

Menor que.

>

Maior que.

=

Igualdade simples; em strings, pode considerar correspondência parcial.

==

Igualdade exata, especialmente importante para strings.

<=

Menor que ou igual a.

>=

Maior que ou igual a.

<> ou !=

Diferente.

#

Diferente, mantido por compatibilidade; uso obsoleto.

EXEMPLO
Local cCodigo := "ABC"

If cCodigo == "ABC"
    ConOut("Código exato")
EndIf
03

Lógicos

Combinam ou invertem expressões lógicas.

.Not. ou !

Negação lógica.

.And.

E lógico: todas as condições devem ser verdadeiras.

.Or.

Ou lógico: ao menos uma condição deve ser verdadeira.

EXEMPLO
Local lAtivo := .T.
Local nSaldo := 100

If lAtivo .And. nSaldo > 0
    ConOut("Disponível")
EndIf
04

Atribuição

Gravam ou atualizam valores de variáveis.

:=

Atribui um valor.

+=

Soma e atribui.

-=

Subtrai e atribui.

*=

Multiplica e atribui.

/=

Divide e atribui.

^= ou **=

Eleva e atribui.

%=

Calcula o módulo e atribui.

EXEMPLO
Local nTotal := 10

nTotal += 5   // 15
nTotal *= 2   // 30
nTotal %= 7   // 2
05

Incremento e decremento

Alteram o valor em uma unidade; a posição muda o valor retornado pela expressão.

++x

Incrementa antes de retornar o valor.

x++

Retorna o valor atual e incrementa depois.

--x

Decrementa antes de retornar o valor.

x--

Retorna o valor atual e decrementa depois.

EXEMPLO
Local nX := 5
Local nAntes  := ++nX  // nX=6, nAntes=6
Local nDepois := nX++  // nDepois=6, nX=7
06

Strings

Concatenam ou pesquisam conteúdos de caracteres.

x + y

Concatena x e y.

x - y

Concatena e transfere os espaços finais de x para o fim do resultado.

x $ y

Retorna verdadeiro quando x está contido em y.

EXEMPLO
Local cNome := "Usina" + ".BR"
Local lTem  := "AdvPL" $ "Guia AdvPL"

ConOut(cNome) // Usina.BR
ConOut(lTem)  // .T.
07

Especiais

Atuam sobre código, estruturas, referências, aliases e objetos.

&cVariavel

Operador macro: avalia o conteúdo como expressão AdvPL.

| |

Delimita a lista de argumentos de um bloco de código.

( )

Chamada de função ou agrupamento de expressão.

[ ]

Acesso a elemento de matriz.

{ }

Bloco de código ou valores literais de matriz.

->

Acesso a campo por alias.

@

Passagem de parâmetro por referência.

;

Continuação ou separação de instruções, conforme o contexto.

:

Envio de mensagem, acesso a método ou membro de objeto.

EXEMPLO
Local aDados := {"A", "B"}
Local bExibe := {|cTexto| ConOut(cTexto)}
Local cCampo := "A1_NOME"

Eval(bExibe, aDados[1])
ConOut(SA1->&cCampo)
REFERÊNCIAS
  1. Programação em ADVPL. Microsiga, 10 ago. 2007, p. 6-7. Conteúdo reorganizado e exemplos adicionados.
  2. TOTVS. Operadores Comuns. TDN. Consulta técnica complementar.
  3. TOTVS. SDK Microsiga Protheus. TDN — referência complementar.