JAVA Learning

Hub de Conteúdo

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:

Exemplos de Operadores Aritméticos:
java
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
java
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
java
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
java
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)
java
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:

java
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

java
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

java
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

java
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!