Resumo: Além dos operadores de incremento e decremento que vimos na aula anterior, existem várias formas de atualizar o valor de uma variável usando operações matemáticas com outras variáveis.
A atualização de atribuição de uma variável também pode ser feita por uma operação matemática dessa variável por um número e isso pode ser feito de duas formas diferentes.
public class AtualizacaoVariaveis {
public static void main(String[] args) {
// Declarando variáveis
int a = 10;
int b = 5;
int c = 8;
// Atualização usando operação com outra variável
a = a + b; // a recebe o seu valor atual (10) mais o valor de b (5)
System.out.println("a = a + b: " + a); // a = 15
// Usando o operador de atribuição composta (forma abreviada)
c += b; // c recebe o seu valor atual (8) mais o valor de b (5)
System.out.println("c += b: " + c); // c = 13
// Outros exemplos de atualização com diferentes operações
// Subtração
a = a - b; // a recebe o seu valor atual (15) menos o valor de b (5)
System.out.println("a = a - b: " + a); // a = 10
// Subtração (forma abreviada)
c -= b; // c recebe o seu valor atual (13) menos o valor de b (5)
System.out.println("c -= b: " + c); // c = 8
// Multiplicação
a = a * 2; // a recebe o seu valor atual (10) multiplicado por 2
System.out.println("a = a * 2: " + a); // a = 20
// Multiplicação (forma abreviada)
c *= 3; // c recebe o seu valor atual (8) multiplicado por 3
System.out.println("c *= 3: " + c); // c = 24
// Divisão
a = a / 4; // a recebe o seu valor atual (20) dividido por 4
System.out.println("a = a / 4: " + a); // a = 5
// Divisão (forma abreviada)
c /= 6; // c recebe o seu valor atual (24) dividido por 6
System.out.println("c /= 6: " + c); // c = 4
// Módulo (resto da divisão)
a = a % 2; // a recebe o resto da divisão do seu valor atual (5) por 2
System.out.println("a = a % 2: " + a); // a = 1 (resto de 5 dividido por 2)
// Módulo (forma abreviada)
c %= 3; // c recebe o resto da divisão do seu valor atual (4) por 3
System.out.println("c %= 3: " + c); // c = 1 (resto de 4 dividido por 3)
}
}
a = a + b: 15
c += b: 13
a = a - b: 10
c -= b: 8
a = a * 2: 20
c *= 3: 24
a = a / 4: 5
c /= 6: 4
a = a % 2: 1
c %= 3: 1
public class AtualizacaoDiferentesTipos {
public static void main(String[] args) {
// Atualização de variáveis int
int contador = 0;
System.out.println("Valor inicial de contador: " + contador);
contador += 10; // Adiciona 10 ao valor atual
System.out.println("Contador após += 10: " + contador);
// Atualização de variáveis double
double preco = 100.0;
System.out.println("\nValor inicial de preço: " + preco);
// Aplicando um desconto de 10%
preco -= preco * 0.1; // preco = preco - (preco * 0.1)
System.out.println("Preço após desconto de 10%: " + preco);
// Aplicando um aumento de 5%
preco *= 1.05; // preco = preco * 1.05
System.out.println("Preço após aumento de 5%: " + preco);
// Atualização de Strings
String mensagem = "Olá";
System.out.println("\nValor inicial da mensagem: " + mensagem);
// Concatenando strings
mensagem += " Mundo"; // mensagem = mensagem + " Mundo"
System.out.println("Mensagem após += \" Mundo\": " + mensagem);
mensagem += "!"; // mensagem = mensagem + "!"
System.out.println("Mensagem após += \"!\": " + mensagem);
}
}
Valor inicial de contador: 0
Contador após += 10: 10
Valor inicial de preço: 100.0
Preço após desconto de 10%: 90.0
Preço após aumento de 5%: 94.5
Valor inicial da mensagem: Olá
Mensagem após += " Mundo": Olá Mundo
Mensagem após += "!": Olá Mundo!
Nota: As Strings em Java são imutáveis, isso significa que quando você atualiza uma variável String, na verdade você está criando uma nova String. O operador += para Strings é uma conveniência que oculta essa operação.
| Operador | Exemplo | Equivalente a | Descrição |
|---|---|---|---|
| = | x = y | x = y | Atribuição simples |
| += | x += y | x = x + y | Adição e atribuição |
| -= | x -= y | x = x - y | Subtração e atribuição |
| *= | x *= y | x = x * y | Multiplicação e atribuição |
| /= | x /= y | x = x / y | Divisão e atribuição |
| %= | x %= y | x = x % y | Módulo e atribuição |
Vamos ver um exemplo prático que calcula o preço final de um produto com imposto e frete:
public class CalculoPrecoFinal {
public static void main(String[] args) {
// Preço original do produto
double precoProduto = 159.90;
System.out.println("Preço original do produto: R$" + precoProduto);
// Adicionando imposto de 15%
double taxaImposto = 0.15; // 15%
precoProduto += precoProduto * taxaImposto;
System.out.println("Preço com imposto: R$" + precoProduto);
// Adicionando frete fixo
double valorFrete = 12.50;
precoProduto += valorFrete;
System.out.println("Preço final (com imposto e frete): R$" + precoProduto);
// Aplicando desconto para pagamento à vista (5%)
double desconto = 0.05; // 5%
double precoComDesconto = precoProduto - (precoProduto * desconto);
System.out.println("Preço com desconto para pagamento à vista: R$" + precoComDesconto);
// Calculando valor das parcelas (em 3x sem juros)
int numeroParcelas = 3;
double valorParcela = precoProduto / numeroParcelas;
System.out.println("Valor da parcela (em " + numeroParcelas + "x sem juros): R$" + valorParcela);
}
}
Preço original do produto: R$159.9
Preço com imposto: R$183.885
Preço final (com imposto e frete): R$196.385
Preço com desconto para pagamento à vista: R$186.56575
Valor da parcela (em 3x sem juros): R$65.46166666666666
Teste seus conhecimentos sobre atualização de atribuição de variáveis:
Reforce o conteúdo desta aula com mais dois exercícios práticos: