Expressões – Operações entre tipos Prof. M.Sc. Ronnison Reges Vidal.

21
Expressões – Operações entre tipos Prof. M.Sc. Ronnison Reges Vidal

Transcript of Expressões – Operações entre tipos Prof. M.Sc. Ronnison Reges Vidal.

Page 1: Expressões – Operações entre tipos Prof. M.Sc. Ronnison Reges Vidal.

Expressões – Operações entre tipos

Prof. M.Sc. Ronnison Reges Vidal

Page 2: Expressões – Operações entre tipos Prof. M.Sc. Ronnison Reges Vidal.

Roteiro

• Introdução• Operadores aritméticos• Operadores relacionais• Operadores lógicos• Atribuição Composta• Operadores Incremental e Decremental• Operador Ternário• Operador de Concatenação de Strings• Operadores de Deslocamento

Page 3: Expressões – Operações entre tipos Prof. M.Sc. Ronnison Reges Vidal.

INTRODUÇÃO

Page 4: Expressões – Operações entre tipos Prof. M.Sc. Ronnison Reges Vidal.

Introdução

• Os operadores Java são similares em função e estilo aos operadores em linguagem C/C++

• Os operadores podem ser divididos em dois tipos– Operadores aritméticos– Operadores relacionais– Operadores lógicos– Atribuição Composta– Operadores Incremental e Decremental– Operador Ternário

Page 5: Expressões – Operações entre tipos Prof. M.Sc. Ronnison Reges Vidal.

Operadores Aritméticos

• Os operadores aritméticos são como outros operadores de outras linguagens tradicionalmente conhecidas. Exemplos deles são mostrados na tabela 2.

Operadores Nome Exemplo

+ Adição 23+29

- Subtração 29-23

* Multiplicação 0.5*salário

/ Divisão 100/42

% Módulo 57/5

Page 6: Expressões – Operações entre tipos Prof. M.Sc. Ronnison Reges Vidal.

Operadores Aritméticos

• A divisão retorna um inteiro se os argumentos forem inteiros, mas se forem de outro tipo retorna um ponto flutuante. Segue abaixo um exemplo:– 15/2 = 7– 15.0 / 2 = 7,5

Page 7: Expressões – Operações entre tipos Prof. M.Sc. Ronnison Reges Vidal.

Operadores Relacionais

• Os operadores relacionais permitem que se realizem comparações entre os operadores

Operador Nome Exemplo

== Igual 10 == 10

!= Diferente 3 != 2

< Maior que 4 > 10

> Menor que 10 < 4

<= Maior ou igual à 3 >= 3

>= Menor ou igual à 5 <= 6

Page 8: Expressões – Operações entre tipos Prof. M.Sc. Ronnison Reges Vidal.

Atribuição Composta

• Para facilitar a programação, Java oferece um tipo de atribuição chamada atribuição composta

• Esse tipo de atribuição pode ser utilizado quando se deseja atribuir a uma variável X, o valor de X adicionado a 10, por exemplo– x += 10; //Equivale x = x + 10– x += y; //Equivale x = x + y– a -= b; //Equivale a = a - b– a *= 3; //Equivale a = a * 3

Page 9: Expressões – Operações entre tipos Prof. M.Sc. Ronnison Reges Vidal.

Operadores Incremental e Decremental

• Os operadores incremental e decremental também foram desenvolvidos para facilitar a programação

• O Java oferece uma maneira simples para fazer o incremento ou decremento em variáveis– O incremento é dado pelo operador ++– E o decremento pelo operador –

• Este decremento ou incremento pode ser feito antes ou depois da utilização da variável, dependendo da necessidade do programador em relação a atribuição do dado

Page 10: Expressões – Operações entre tipos Prof. M.Sc. Ronnison Reges Vidal.

Operadores Incremental e Decremental

• Colocando os operadores antes das variáveis será realizado primeiro a operação para depois o valor da variável ser utilizado

• Ao contrário, caso o operador esteja localizado após a variável, será realizado primeiramente a variável para depois ser realizado o incremento ou o decremento da variável

Page 11: Expressões – Operações entre tipos Prof. M.Sc. Ronnison Reges Vidal.

Operadores Incremental e Decremental

• Exemplos– i++; //Equivale a: i = i + 1– i--; //Equivale a: i = i - 1– ++i; //Equivale a: i = i + 1– --i; //Equivale a: i = i - 1

Page 12: Expressões – Operações entre tipos Prof. M.Sc. Ronnison Reges Vidal.

Operadores Incremental e Decremental

• Estes operadores quando utilizados isoladamente não oferecem problemas aos programadores

• Mas quando utilizados dentro de expressões, eles podem causar confusões e mau entendimentos quanto aos resultados da apresentação– Int a = 7;– Int b = 7;– Int x = 2 * ++a;– Int y = 2 * b++;

Qual o valor dos resultados?a = ?b = ?x = ?y = ?

Page 13: Expressões – Operações entre tipos Prof. M.Sc. Ronnison Reges Vidal.

Operadores Ternário

• O operador ternário permite que se realize operações simplificadas de condições– Uma condição trabalhada no Java como IF-THEN-

ELSE, pode ser manipulada através do operador ternário

• O operador ternário é formado por uma condição, e em caso positivo, é executada uma ação e em caso negativo, outra ação pode ser executada

Page 14: Expressões – Operações entre tipos Prof. M.Sc. Ronnison Reges Vidal.

Operadores Ternário

• Exemplo– x<y ? e1:e2 onde,

• x<y é a condição, e em caso positivo será executado e1

• E em caso negativo será executado e2• Exemplo– String a = 1<2 ? “Menor” : “Menor”

• R.: O valor de a será “Menor ”, visto que 1 é menor que 2.

Page 15: Expressões – Operações entre tipos Prof. M.Sc. Ronnison Reges Vidal.

Operador de Concatenação de Strings• Quando o operador + é aplicado a dados do

tipo String, ele cria um novo dado do tipo String, concatenando os dois operandos:/*** Concatenação de Strings*/String sigla = “LP II";String nome = “Linguagem de Programação II";String titulo = sigla + " - " + nome;// Esse comando imprimirá na tela a frase:// LP II – Linguagem de Programação IISystem.out.prinln(titulo);int i = 10;String legenda = "valor = ";// campo é uma variável do tipo StringString campo = legenda + i;

Page 16: Expressões – Operações entre tipos Prof. M.Sc. Ronnison Reges Vidal.

Operador de Concatenação de Strings• Alguns métodos úteis em dados do tipo String:

/*** String: métodos úteis*/String disciplina = “Linguagem de Programação II";System.out.println("disciplina: " + disciplina);// Isolando um caractere:System.out.print("primeiro caractere: " );System.out.println(disciplina.charAt(0));System.out.print("segundo caractere: " );System.out.println(disciplina.charAt(1));// O primeiro caractere de uma String tem o// índice 0, o segundo o índice 1 e assim por diante// letra = ‘n';char letra = disciplina.charAt(2);// substrings:System.out.print("primeiras cinco letras: " );System.out.println(disciplina.substring(0, 5) );System.out.print("letras a partir da quarta: " );System.out.println(disciplina.substring(4) );

Page 17: Expressões – Operações entre tipos Prof. M.Sc. Ronnison Reges Vidal.

Operador de Concatenação de Strings• Alguns métodos úteis em dados do tipo String:

// número de caracteres em uma String:System.out.print("tamanho da frase: ");System.out.println(disciplina.lenght() + " letras");// usando os caracteres de tabulação e quebra// de linha:System.out.println("" + disciplina.lenght() + " letras" + " \n" + " Nova linha\t tabulação" );

Page 18: Expressões – Operações entre tipos Prof. M.Sc. Ronnison Reges Vidal.

Operadores de Deslocamento

• Java provê operadores para a manipulação dos bits em variáveis de tipo numérico: o deslocamento aritmético >> e o deslocamento lógico >>>– operador de deslocamento aritmético >> executa um deslocamento

de um bit para a direita de um número (na prática, o primeiro argumento desse operador é dividido por dois 'n' vezes – onde n é o segundo argumento do operador)

– Exemplo• 8 >> 2 = 2• 128 >> 1 = 64• 256 >> 4 = 16

* Notação em complemento de dois: o operador >> mantém o sinal do bit mais significativo durante o deslocamento.

Page 19: Expressões – Operações entre tipos Prof. M.Sc. Ronnison Reges Vidal.

Operadores de Deslocamento

• Java provê operadores para a manipulação dos bits em variáveis de tipo numérico: o deslocamento aritmético >> e o deslocamento lógico >>>– O operador de deslocamento lógico >>> executa

um deslocamento no padrão dos bits ao invés do significado aritmético de um valor numérico

Page 20: Expressões – Operações entre tipos Prof. M.Sc. Ronnison Reges Vidal.

Operadores de Deslocamento

• Java provê operadores para a manipulação dos bits em variáveis de tipo numérico: o deslocamento aritmético >> e o deslocamento lógico >>>– Esse operador sempre adiciona o valor 0 ao bit mais significativo:

• 1010 ... >> 2 = 111010 ...• 1010 ... >>> 2 = 001010 ...

* Os operadores de deslocamento reduzem seus operandos à direita de módulo 32 para um valor do tipo int e módulo 64 para um tipo long• Dessa forma, para qualquer valor do tipo int:

• int x ? x >>> 32 = x

Page 21: Expressões – Operações entre tipos Prof. M.Sc. Ronnison Reges Vidal.

Operadores de Deslocamento

• O operador de deslocamento lógico >>> só pode ser aplicado a valores inteiros, e não é efetivo em valores int e long

• Se for aplicado a valor short ou byte, o valor será promovido a um int antes da aplicação do operador– Por isso, um deslocamento sem sinal acaba se

tornando um deslocamento com sinal