Operações Matemáticas em Java
Guia completo sobre operadores aritméticos, relacionais, lógicos e a classe Math
1. Introdução às Operações Matemáticas
As operações matemáticas são fundamentais em programação. Java oferece uma ampla gama de operadores e funções matemáticas que permitem realizar cálculos simples e complexos.
Neste guia, você aprenderá sobre os operadores aritméticos básicos, operadores de atribuição compostos, operadores relacionais e lógicos, além de explorar a poderosa classe Math do Java.
2. Operadores Aritméticos Básicos
Java possui cinco operadores aritméticos principais para realizar operações matemáticas:
public class OperadoresAritmeticos {
public static void main(String[] args) {
int a = 10;
int b = 3;
// Operações básicas
int soma = a + b; // 13
int subtracao = a - b; // 7
int multiplicacao = a * b; // 30
int divisao = a / b; // 3 (divisão inteira)
int resto = a % b; // 1 (resto da divisão)
System.out.println("Soma: " + soma);
System.out.println("Subtração: " + subtracao);
System.out.println("Multiplicação: " + multiplicacao);
System.out.println("Divisão: " + divisao);
System.out.println("Resto: " + resto);
// Divisão com ponto flutuante
double divisaoDecimal = (double) a / b; // 3.333...
System.out.println("Divisão decimal: " + divisaoDecimal);
}
}
Atenção à Divisão Inteira!
Quando você divide dois números inteiros em Java, o resultado também é um inteiro (a parte decimal é descartada).
Exemplo: 10 / 3 = 3 (não 3.333...)
Para obter resultado decimal, converta pelo menos um dos valores para double:
(double) 10 / 3 = 3.333...
3. Operadores de Incremento e Decremento
Java oferece operadores especiais para aumentar ou diminuir o valor de uma variável em 1:
| Operador | Nome | Descrição | Exemplo |
|---|---|---|---|
| ++ | Incremento | Aumenta o valor em 1 | x++ ou ++x |
| -- | Decremento | Diminui o valor em 1 | x-- ou --x |
public class IncrementoDecremento {
public static void main(String[] args) {
int x = 5;
System.out.println("x = " + x); // 5
System.out.println("x++ = " + x++); // 5
System.out.println("x = " + x); // 6
x = 5;
System.out.println("++x = " + ++x); // 6
System.out.println("x = " + x); // 6
}
}
4. Operadores de Atribuição Compostos
Estes operadores combinam uma operação aritmética com atribuição, tornando o código mais conciso:
| Operador | Equivalente a | Exemplo |
|---|---|---|
| += | x = x + valor | x += 5 |
| -= | x = x - valor | x -= 3 |
| *= | x = x * valor | x *= 2 |
| /= | x = x / valor | x /= 4 |
public class OperadoresCompostos {
public static void main(String[] args) {
int saldo = 100;
System.out.println("Saldo inicial: " + saldo);
saldo += 50;
System.out.println("Após depósito de 50: " + saldo); // 150
saldo -= 30;
System.out.println("Após saque de 30: " + saldo); // 120
saldo *= 2;
System.out.println("Após dobrar: " + saldo); // 240
saldo /= 3;
System.out.println("Após dividir por 3: " + saldo); // 80
}
}
5. Operadores Relacionais
Operadores relacionais comparam dois valores e retornam um resultado booleano (true ou false):
| Operador | Significado | Exemplo | Resultado |
|---|---|---|---|
| == | Igual a | 5 == 5 | true |
| != | Diferente de | 5 != 3 | true |
| > | Maior que | 7 > 5 | true |
| < | Menor que | 3 < 8 | true |
public class OperadoresRelacionais {
public static void main(String[] args) {
int idade = 18;
int limiteIdade = 18;
System.out.println("idade == limiteIdade: " + (idade == limiteIdade)); // true
System.out.println("idade != limiteIdade: " + (idade != limiteIdade)); // false
System.out.println("idade > limiteIdade: " + (idade > limiteIdade)); // false
System.out.println("idade >= limiteIdade: " + (idade >= limiteIdade)); // true
if (idade >= limiteIdade) {
System.out.println("Pode votar!");
}
}
}
6. Operadores Lógicos
Operadores lógicos são usados para combinar múltiplas condições:
| Operador | Nome | Descrição | Exemplo |
|---|---|---|---|
| && | AND (E) | Retorna true se ambas forem verdadeiras | (x > 5) && (x < 10) |
| || | OR (OU) | Retorna true se pelo menos uma for verdadeira | (x < 5) || (x > 10) |
| ! | NOT (NÃO) | Inverte o valor booleano | !(x == 5) |
public class OperadoresLogicos {
public static void main(String[] args) {
int idade = 25;
boolean temCarteira = true;
if (idade >= 18 && temCarteira) {
System.out.println("Pode dirigir!");
}
boolean fimDeSemana = true;
if (fimDeSemana) {
System.out.println("Não precisa trabalhar!");
}
int nota = 85;
int frequencia = 80;
if (nota >= 70 && frequencia >= 75) {
System.out.println("Aprovado!");
}
}
}
7. A Classe Math
A classe Math do Java fornece métodos para operações matemáticas avançadas:
public class ClasseMath {
public static void main(String[] args) {
System.out.println("PI: " + Math.PI);
System.out.println("E: " + Math.E);
double potencia = Math.pow(2, 3); // 8.0
double raiz = Math.sqrt(16); // 4.0
System.out.println("2^3 = " + potencia);
System.out.println("√16 = " + raiz);
int absoluto = Math.abs(-15); // 15
System.out.println("Valor absoluto de -15: " + absoluto);
double arredondado = Math.round(3.7); // 4
System.out.println("Round de 3.7: " + arredondado);
int max = Math.max(10, 20); // 20
int min = Math.min(10, 20); // 10
System.out.println("Máximo: " + max);
System.out.println("Mínimo: " + min);
double aleatorio = Math.random();
System.out.println("Número aleatório: " + aleatorio);
}
}
Principais Métodos da Classe Math:
- Math.pow(base, expoente) - Potenciação
- Math.sqrt(numero) - Raiz quadrada
- Math.abs(numero) - Valor absoluto
- Math.round(numero) - Arredondamento
- Math.ceil(numero) - Arredonda para cima
- Math.floor(numero) - Arredonda para baixo
- Math.max(a, b) - Retorna o maior valor
- Math.min(a, b) - Retorna o menor valor
- Math.random() - Número aleatório entre 0.0 e 1.0
8. Exemplos Práticos
Exemplo 1: Calculadora de IMC
import java.util.Scanner;
public class CalculadoraIMC {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("Digite seu peso (kg): ");
double peso = sc.nextDouble();
System.out.print("Digite sua altura (m): ");
double altura = sc.nextDouble();
double imc = peso / Math.pow(altura, 2);
System.out.println("Seu IMC é: " + imc);
if (imc < 18.5) {
System.out.println("Abaixo do peso");
} else if (imc < 25) {
System.out.println("Peso normal");
} else if (imc < 30) {
System.out.println("Sobrepeso");
} else {
System.out.println("Obesidade");
}
sc.close();
}
}
Exemplo 2: Conversor de Temperatura
import java.util.Scanner;
public class ConversorTemperatura {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("1 - Celsius para Fahrenheit");
System.out.println("2 - Fahrenheit para Celsius");
System.out.print("Escolha: ");
int opcao = sc.nextInt();
if (opcao == 1) {
System.out.print("Temperatura em Celsius: ");
double celsius = sc.nextDouble();
double fahrenheit = (celsius * 9.0 / 5.0) + 32;
System.out.println(celsius + "°C = " + fahrenheit + "°F");
} else if (opcao == 2) {
System.out.print("Temperatura em Fahrenheit: ");
double fahrenheit = sc.nextDouble();
double celsius = (fahrenheit - 32) * 5.0 / 9.0;
System.out.println(fahrenheit + "°F = " + celsius + "°C");
}
sc.close();
}
}
Exemplo 3: Jogo de Dados
import java.util.Scanner;
public class JogoDados {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("Pressione ENTER para jogar...");
sc.nextLine();
int dado1 = (int) (Math.random() * 6) + 1;
int dado2 = (int) (Math.random() * 6) + 1;
System.out.println("Dado 1: " + dado1);
System.out.println("Dado 2: " + dado2);
System.out.println("Soma: " + (dado1 + dado2));
if (dado1 == dado2) {
System.out.println("DUPLA!");
}
sc.close();
}
}
9. Exercícios Práticos
Exercício 1: Média de Três Números
Crie um programa que leia três números e calcule a média aritmética.
Exercício 2: Par ou Ímpar
Crie um programa que verifica se um número é par ou ímpar usando o operador módulo (%).
Exercício 3: Área do Círculo
Calcule a área de um círculo usando a fórmula: área = π × raio². Use Math.PI.
Exercício 4: Maior de Três Números
Crie um programa que encontre o maior entre três números usando Math.max().
Exercício 5: Gerador de Senha Numérica
Crie um programa que gere uma senha numérica aleatória de 4 dígitos usando Math.random().
10. Resumo Visual
Operadores Aritméticos:
+ - * / %
Lembre-se: divisão inteira descarta decimais!
Operadores de Comparação:
== != > < >= <=
Retornam true ou false
Operadores Lógicos:
&& (E) || (OU) ! (NÃO)
Combinam condições booleanas
Classe Math - Principais Métodos:
pow(), sqrt(), abs(), round(), max(), min(), random()
Funções matemáticas prontas para usar!
Conclusão
Dominar operações matemáticas em Java é essencial para resolver problemas do mundo real. Desde cálculos simples até operações complexas com a classe Math, você agora tem as ferramentas necessárias para criar programas poderosos.
Continue praticando e logo você estará resolvendo problemas matemáticos complexos naturalmente!