Operadores aritméticos em Java

Explorando operadores aritméticos em Java: adição, subtração, multiplicação, divisão e módulo, com exemplos e detalhes essenciais.

Por
4 min. de leitura

Fala, meus consagrados! Beleza?

Neste artigo, teremos um resumo sobre os operadores aritméticos na linguagem Java. 

Temos os seguintes operadores aritméticos:

  • Adição + ;
  • Subtração – ;
  • Multiplicação * ;
  • Divisão / ; e
  • Módulo ou resto da divisão % .

Figura 1: Operadores aritméticos.

Esses operadores são bem tranquilos de serem aplicados, porém, há alguns detalhes que precisamos estudar. É o que veremos nos próximos tópicos.

OperadorNomeExemplo
+Adiçãox + y
Subtraçãox – y
*Multiplicaçãox * y
/Divisãox / y
%Módulo ou resto da divisãox % y

Tabela 1: Exemplos do uso dos operadores aritméticos.

Na linguagem Java, não há um operador de exponenciação. Para essa operação, utilizamos o método pow() da classe Math (Math.pow(x, y).

Exemplo da operação de exponenciação em Java:

int x = 2;

int y = 3;

System.out.println(Math.pow(x, y)); // 8.0

Antes de vermos detalhes de alguns operadores, é importante entendermos os tipos dos resultados das operações aritméticas:

  • 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 é double quando:
    • Pelo menos um operador for do tipo double; e
    • O outro for um tipo menos preciso.
Tipo do operando 1Tipo do operando 2Tipo de resultado da operação
bytebyteint
shortshortint
intintint
Pelo menos um deles for do tipo long e o outro for do mesmo tipo ou de um tipo menos precisolong
Pelo menos um deles for do tipo float e o outro for do mesmo tipo ou de um tipo menos precisofloat
Pelo menos um deles for do tipo double e o outro for do mesmo tipo ou de um tipo menos precisodouble

Tabela 2: Resumo da descrição das fases de uma aplicação Java.

Exemplo 1:

byte j = 15;

byte l = 20;

byte m = (byte) (j + l);

No exemplo 1, os dois operandos j e l são do tipo byte e o resultado da operação de adição dos dois operandos é do tipo int. Com isso, houve a necessidade de se fazer casting para que a variável m do tipo byte pudesse receber o resultado da operação.

Exemplo 2:

int n = 15;

long o = 20;

int p = (int) (n – o);

No exemplo 2, o operando o é do tipo long e o tipo do operando n é de um tipo menos preciso que o primeiro operando. Então o resultado da operação de adição dos dois operandos é do tipo long. A variável p é do tipo int e, para que ela pudesse receber o resultado, houve a utilização de casting.

Exemplo 3:

float q = 15.5f;

double r = 20.7;

float s = (float) (q * r);

double é o tipo retorno pela multiplicação da variável q do tipo float pela variável r do tipo double. Isso acontece porque um dos operandos é double e outro é de um tipo menos preciso do que double, tipo float. Por isso temos que fazer casting para que a variável s do tipo float possa receber o resultado da operação.

Exemplo 5:

byte t = 19;

int u = 3;

double v = t / u;

No exemplo 5, temos dois operandos: t do tipo byte e u do tipo int. A variável t recebeu o valor 19 e a u, 3. Temos também a declaração da variável v do tipo double recebendo o resultado da operação de divisão das variáveis t e u. Com isso, v receberá 6.0.

Como ambos os operandos são do grupo dos tipos numéricos integrais, então o resultado da divisão no exemplo é do tipo int 6, mas a variável v é do tipo double, então haverá a conversão automática de 6 para double (6.0).

Exemplo 6:

double w = 19.0;

int x = 3;

double y = w / x;

No exemplo 6, temos dois operandos w e x, sendo a variável w do tipo double e a variável x do tipo int. Com isso, o resultado da operação de divisão entre essas variáveis será do tipo double (6.333333333333333). Como a variável y é do tipo double, então ela vai receber esse valor.

O operador de adição + possui duas funções:

  • Função 1: adição entre tipos numéricos; e
  • Função 2: concatenação de strings.

Como concatenador de strings, basta que um dos operandos seja do tipo String para que o resultado da operação seja uma string concatenada.

Figura 2: Funções do operador de adição +.

Se forem usados vários operadores de adição e vários operandos, a partir do primeiro operando do tipo String, terão a função de concatenar strings o operador de adição antes desse operando e todos os operadores de adição após ele.

Exemplo: 

String z = 15 + 8 + “Kal-El” + 15 + 8;

// z terá valor de “23Kal-El158”

// 15 + 8 antes do operando “Kal-El” foram somados (23)

// 15 + 8 depois do operando “Kal-El” foram concatenados (158)

Interface gráfica do usuário, Aplicativo

Descrição gerada automaticamente

Figura 3: Operadores de divisão / e módulo % entre dois números inteiros.

O operador de divisão / representa a divisão de:

  • Números inteiros; e
  • Números de ponto flutuante.

No caso de divisão de números inteiros, ou seja, quando os operandos sejam do tipo do grupo BSIL (byte, short, int e long):

  • O tipo do resultado é int quando os dois operandos são dos tipos byte, short e int;
  • O tipo do resultado é long quando:
    • Pelo menos um dos operandos for do tipo long; e
    • O outro for de um tipo igual ou menos preciso;

Exemplo:

int x = 15 / 2; // x receberá o valor 7

Em uma divisão de inteiros, quando o divisor for 0, leva-se a uma exceção ArithmeticException, pois não há divisão de inteiros por zero!

No caso de divisão de números de ponto flutuante:

  • O tipo do resultado é float quando:
    • Pelo menos um dos operandos for do tipo float; e
    • O outro for de um tipo igual ou menos preciso;
  • O tipo do resultado é double quando:
    • Pelo menos um dos operandos for do tipo double; e
    • O outro for de um tipo igual ou menos preciso.

Exemplo:

double y = 15 / 2.0; // y terá valor 7.5.

Quando da divisão de (sendo um deles dos tipos FD float/double):

  • Número positivo por 0, produz resultado infinito positivo;
  • Número negativo por 0, produz resultado infinito negativo; e
  • 0 por 0, produz NaN (not a number).

O operador de divisão / representa o quociente da divisão entre dois números inteiros, enquanto o operador módulo % representa o resto da divisão entre dois números inteiros.

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:

Concursos Abertos

Concursos 2024

Receba gratuitamente no seu celular as principais notícias do mundo dos concursos!
clique no link abaixo e inscreva-se gratuitamente:

Telegram

Por
4 min. de leitura