Fala, meus consagrados! Beleza?
Estudaremos os detalhes sobre as operações de atribuição de valores para variáveis na linguagem Java.
Há dois tipos de operadores de atribuição:
- Atribuição simples; e
- Atribuição composta.
Figura 1: Operadores de atribuição.
O operador de atribuição simples = é o mais comum de ocorrer. Ele copia um valor do lado direito para a variável do lado esquerdo, sendo esse valor:
- De uma variável; ou
- Um literal.
O operador de atribuição simples possui função diferente do operador de igualdade (==), ou seja, o operador de atribuição simples não é usado para comparação, em hipótese alguma!
Por exemplo:
- int x = 15;
- Copia o valor literal inteiro 15 para a variável x; e
- int y = x;
- Copia o valor da variável x para a variável y.
Além do operador básico, Java oferece operadores de atribuição composta que combinam operações aritméticas ou bit a bit com a atribuição. Esses operadores incluem +=, -=, *=, /=, %=, <<=, >>=, e &=, entre outros. Por exemplo, x += 5; é equivalente a x = x + 5;, adicionando 5 ao valor atual de x. Esses operadores compõem uma maneira prática e elegante de modificar valores de variáveis sem a necessidade de repeti-los na operação.
Figura 2: Operadores de atribuição composta.
Os operadores de atribuição compostos são particularmente úteis em laços de repetição e em situações onde uma variável precisa ser atualizada repetidas vezes em relação ao seu valor anterior. Por exemplo, em um laço que soma uma lista de números, o operador += pode ser usado para adicionar cada número a um acumulador, simplificando o código e tornando-o mais legível.
Sintaxe da atribuição composta:
variável1 operação= variável2;
Essa sintaxe é equivalente sintaxe normal abaixo com casting implícito:
variável1 = (T) (variável1 operação variável2);
Onde temos:
- Operandos:
- variável1; e
- variável2;
- T:
- Tipo da variável1.
Ou seja, a sintaxe da atribuição composta já traz o casting de brinde.
Resumindo, nas operações com operadores de atribuição composta, temos:
- Operandos;
- Operação; e
- Casting implícito;
Exemplo:
byte x = 15;
int y = 7;
x += y;
System.out.println(x);
O resultado do trecho do código:
22
No exemplo acima, temos duas variáveis:
- x do tipo byte que recebe 15;
- y do tipo int que recebe 7.
A variável x recebe o resultado de uma atribuição composta com y (x += y), ou seja, por equivalência, seria o mesmo que:
x = byte(x + y);
Por que temos que fazer o casting? Porque:
- O tipo do resultado é int quando os dois operadores são dos tipos byte, short e int;
- O tipo do resultado é long quando:
- Pelo menos um operador for do tipo long; e
- O outro for um tipo menos preciso;
- O tipo do resultado é float quando:
- Pelo menos um operador for do tipo float; e
- O outro for um tipo menos preciso;
- O tipo do resultado é doublé quando:
- Pelo menos um operador for do tipo doublé; e
- O outro for um tipo menos preciso.
No caso do nosso exemplo, x é do tipo byte e y é do tipo int, então o resultado da adição é do tipo int. Por isso temos que fazer o casting para que o resultado seja recebido pela variável x.
Quando trabalhamos com operação de atribuição composta, o casting já vem de brinde.
Como estudamos, também podemos trabalhar o operador + para concatenação de strings e podemos usar essa operação também na atribuição composta:
String x = “Java”;
int y = 7;
x += y;
System.out.println(x);
O resultado do trecho do código:
Java7
Nesse exemplo, temos também as mesmas duas variáveis:
- x do tipo String que recebe “Java”; e
- y do tipo int que recebe 7.
Variável x recebe o resultado de uma atribuição composta com y (x += y), então x terá o valor da concatenação dele mesmo com y: “Java7”.
Espero que tenham gostado!
Forte abraço e até a próxima jornada!
_________________________
Professor Rogerão Araújo
Quer ficar por dentro dos concursos públicos abertos e previstos pelo Brasil?
clique nos links abaixo:
Receba gratuitamente no seu celular as principais notícias do mundo dos concursos!
clique no link abaixo e inscreva-se gratuitamente:
Participe da conversa