Operadores compostos
Aprenda sobre a 5ª categoria de operadores. Veja como os operadores compostos, tais como o de incremento e decremento, simplificam os cálculos.
22/10/2023
Antes de aprender sobre os operadores compostos, primeiramente é recomendável que você já tenha lido os artigos sobre:
operador de atribuição.
operadores aritméticos.
Se você ainda não conhece esses operadores, certamente você deve ler esses artigos antes de prosseguir.
Bom! Mas vamos ao que interessa!
O que são os operadores compostos?
Os operadores compostos representam a 5ª categoria de operadores da programação e, em resumo, fornecem uma maneira mais curta para realizar algumas operações aritméticas.
Só para exemplificar, veja o código abaixo. Observe que, na linha 2, o valor atribuído à variável x é 15. (10 + 5). Portanto, o comando na linha 3 imprime na tela o valor 15.
1.int x = 10;
2.x = x + 5;
3.println(x);
Agora observe abaixo uma outra maneira de escrever esse mesmo código acima.
1.int x = 10;
2.x += 5;
3.println(x);
Certamente você pode perceber o uso de um operador diferente na linha 2 do código acima. Usamos o operador composto += para simplificar a operação aritmética.
A expressão “x = x + 5” contém duas características importantes:
- Contém duas operações simultâneas:
- uma operação de atribuição (x = x + 5)
- e uma operação aritmética (x = x + 5)
- Utiliza apenas uma única variável na mesma operação (a variável x).
Sempre que uma expressão tiver essas duas características, certamente ela pode ser simplificada com um operador composto.
Nesse sentido, as principais linguagens de programação fornecem os seguintes operadores compostos:
++
que representa incremento.
—
que representa decremento.
+=
que representa atribuição-adição.
-=
que representa atribuição-subtração.
*=
que representa atribuição-multiplicação.
/=
que representa atribuição-divisão.
%=
que representa atribuição-resto.
Assim sendo, veja abaixo alguns exemplos de expressões simplificadas com o uso dos operadores compostos.
- A expressão “x = x − 5” pode ser escrita como “x −= 5”
- Da mesma forma “x = x * 8” pode ser escrita como “x *= 8”
- E “x = x / 2” pode ser escrita como “x /= 2”
Operadores compostos de incremento e decremento
Os operadores ++ (incremento) e −− (decremento) são tratados de maneira particular. Na verdade, eles são até mais simples de compreender.
O operador ++ (incremento) apenas adiciona uma unidade ao valor da variável numérica.
Por exemplo: a expressão “x = x + 1” poderia ser reescrita como “x++”.
O operador −− (decremento) apenas subtrai uma unidade do valor da variável numérica.
Por exemplo: a expressão “x = x − 1” poderia ser reescrita como “x−−”.
Simples assim!
Pré e pós fixação dos operadores
O operador de incremento ++ e o operador de decremento −− podem ser utilizados de duas formas diferentes:
- Pós fixado: o operador é colocado após a variável.
Exemplo: x++ - Prefixado: o operador é colocado antes da variável.
Exemplo: ++x
Certamente, na maior parte das situações não vai existir nenhuma diferença em usar o operador pós ou prefixado.
Só para ilustrar, observe os códigos abaixo. Nos dois exemplos, será impresso (na linha 3) o valor 4 para a variável x.
1.int x = 3;
2.x++;
3.println(x);
1.int x = 3;
2.++x;
3.println(x);
Portanto, não faz nenhuma diferença a utilização do operador de incremento pós ou prefixado na linha 2 do código acima.
Então, quando é que faz diferença?
O uso da pós e prefixação faz diferença quando utilizamos ++ ou −− em conjunto com uma operação de atribuição. Veja um exemplo abaixo.
y = x++;
Observe que existe uma operação de atribuição (y = x++) e outra de incremento (y = x++).
Dessa forma, as expressões “y=x++“ e “y=++x“ geram resultados diferentes.
Só para exemplificar, observe os códigos abaixo. Certamente, você consegue perceber a diferença entre eles na linha 2.
1.int x = 3;
2.int y = x++;
3.println(y);
1.int x = 3;
2.int y = ++x;
3.println(y);
Surpreendentemente, na linha 3 do código acima, são impressos resultados diferentes para a variável y.
O primeiro imprime o valor 3 e o segundo imprime o valor 4.
Mas por que isso acontece?
É tudo uma questão de ordem das operações!
Na expressão pós-fixada “int y=x++“, o valor de x (valor 3) é atribuído à variável y antes do incremento. Ou seja:
- primeiro é feita a atribuição (int y = x)
- depois é feito o incremento (x++)
Já na expressão prefixada “int y=++x“, o valor de x (valor 3) é atribuído à variável y depois do incremento. Ou seja:
- primeiro é feito o incremento (++x)
- depois é feita a atribuição (int y = x)
Simples assim!
Esperamos que este artigo tenha te ajudado a expandir os seus conhecimentos.
Se, além deste, você também leu todos os artigos anteriores sobre programação básica, você já possui conhecimento suficiente para avançar para assuntos mais complexos.
Experimente se aprofundar no universo da programação de computadores. Clique aqui e acesse a segunda parte deste curso de Programação Básica.
David Santiago
Mestre em Sistemas e Computação. Graduado em Sistemas de Informação. Professor de Linguagem de Programação, Algoritmos, Estruturas de Dados e Desenvolvimento de Jogos Digitais.