Você está na página 1de 26

Linguagem Java (2)

Java
“write once, run anywhere”

(“escrever código uma vez e reutilizá-lo em diferentes ambientes”)

Programação e Computadores 1
Linguagem Java (2)

Palavras reservadas (keywords):

https://docs.oracle.com/javase/tutorial/java/nutsandbolts/_keywords.html

Programação e Computadores 2
Linguagem Java (2)

Convenções

• Palavras reservadas – totalmente escritas em minúsculas.

• Variáveis – escritas totalmente em minúsculas; se o nome da variável for


constituída por mais de uma palavra, da segunda palavra em diante, cada
nova palavra pode começar por maiúscula (CamelCase, p.e. nomeDoAluno).

• Constantes – totalmente escritas em maiúsculas.

• Métodos – idêntico aos nomes das variáveis.

• Classes – em minúsculas, começando sempre por uma maiúscula (p.e.


Scanner).

• Objetos - idêntico aos nomes das variáveis.

Programação e Computadores 3
Linguagem Java (2)

Comentários

• De linha: // comentário até ao fim da linha


• Várias linhas: /* comentário
com várias
linhas */

Programação e Computadores 4
Linguagem Java (2)

Conversão de tipos de dados

É automática quando se passa de um tipo de dados com menor espaço para um


tipo de dados com maior espaço [espaço = nº de bits].

int i = 10;
conversão implícita
double d = 5.2
double r = i + d; // Ok, i é convertido para double

int i = 10;
double d = 5.2
int r = i + d; // Erro, a conversão não é automática

int i = 10;
conversão explícita - cast
double d = 5.2
int r = i + (int)d; // Ok, conversão de d para int

(a parte decimal do número é eliminada)


Programação e Computadores 5
Linguagem Java (2)

Operadores Aritméticos

x++ e ++x equivalem a x = x + 1


x-- e --x equivalem a x = x - 1
https://www.w3schools.com/java

Programação e Computadores 6
Linguagem Java (2)

Operadores

de

Atribuição

https://www.w3schools.com/java

Programação e Computadores 7
Linguagem Java (2)

Operadores Relacionais

https://www.w3schools.com/java

Programação e Computadores 8
Linguagem Java (2)

Operadores Lógicos

https://www.w3schools.com/java
&& – conjunção (e em Português Estruturado)

|| – disjunção (ou em Português Estruturado)

! – negação (nao em Português Estruturado)

Programação e Computadores 9
Linguagem Java (2)

Programação e Computadores 10
Linguagem Java (2)

Avaliação de Expressões

• As expressões são avaliadas da esquerda para a direita.

• Os operadores são considerados tendo em conta a sua prioridade (ordem de


precedência).

• No caso de operadores com a mesma prioridade, é necessário considerar a


associatividade.

Qual o resultado de 6 / 3 * 2 ?

• (6 / 3) * 2 = 2 * 2 = 4 ou

• 6 / (3 * 2) = 6 / 6 = 1
O resultado correto é 4 porque embora os operadores / e * tenham a
mesma precedência, são associativos da esquerda para a direita (ou seja,
primeiro a operação / e depois a operação *).

Programação e Computadores 11
Linguagem Java (2)

Operadores de incremento e decremento (++ e --)

• São possíveis duas notações:


– Notação pré-fixada – p.e. ++a ou --a
– Notação pós-fixada – p.e. a++ ou a--
• Quando estes operadores são usados de forma isolada (numa expressão em
que não esteja envolvido mais nenhum outro operador), é indiferente usar a
notação pré-fixada ou a notação pós-fixada.

• Mas, quando existem outros operadores envolvidos, os resultados podem ser


diferentes:
– Notação pré-fixada – a variável é alterada (incremento ou decremento)
e só depois é usada no resto da expressão.
– Notação pós-fixada – a variável é usada no resto da expressão e só
depois é alterada (incremento ou decremento).

Programação e Computadores 12
Linguagem Java (2)

Operadores de incremento e decremento (++ e --)

Exemplos (com outros operadores):


a = 1; a = 2, b = 2
b = ++a; // notação pré-fixada
System.out.println(“a = “ + a + “, b = “ + b );
O resultado
1. a variável é alterada (a = a + 1) e final de b é
2. só depois é usada no resto da expressão (b = a). diferente!

a = 1; a = 2, b = 1
b = a++; // notação pós-fixada
System.out.println(“a = “ + a + “, b = “ + b );
1. a variável é usada no resto da expressão (b = a) e
2. só depois é alterada (a = a + 1) .

Programação e Computadores 13
Linguagem Java (2)

Operadores de incremento e decremento (++ e --)

Se as instruções não envolverem outros operadores, então é indiferente usar a


notação pré-fixada ou a notação pós-fixada.

Exemplos (sem outros operadores):


a = 1;
++a; // notação pré-fixada
System.out.println(“a = “ + a ); a = 2

O resultado
final de a é
a = 1;
o mesmo!
a++; // notação pós-fixada
System.out.println(“a = “ + a ); a = 2

Programação e Computadores 14
Linguagem Java (2)

Exemplos de cálculo de expressões:


a = 36;
b = 2;
c = 4;
a /= ++b*c--;
System.out.printf(“a = “ + a + “, b = “ + b + “, c = “ + c );

Quais os valores finais das variáveis?

a = a / (++b*c--)
a = 3
a = a / ( (++b) * (c--) ) b = 3
c = 3
3 * 4

a = a / 12

Programação e Computadores 15
Linguagem Java (2)

Exemplos de cálculo de expressões:


x = 4;
y = 2;
z = 3;
z *= x---y++;
System.out.printf(“x = “ + x + “, y = “ + y + “, z = “ + z );

Quais os valores finais das variáveis?

z = z * (x---y++)
x = 3
z = z * ( (x--) – (y++) ) y = 3
z = 6
4 - 2

z = z * 2

Programação e Computadores 16
Linguagem Java (2)

Exemplos de cálculo de expressões:


x = 4;
y = 2;
z = 24;
k = 3;
z /= x += y*++k;
System.out.printf(“x=“+x+“, y=“+y+“, z=“+z+“k=“+k );

Quais os valores finais das variáveis?


z /= (x += y*++k)
z /= ( x = x + (y*++k) )
x = 12
y = 2
z /= ( x = x + (y*(++k) ) ) z = 2
k = 4
2 * 4
z /= ( x = x + 8)
z = z / 12

Programação e Computadores 17
Linguagem Java (2)

Instruções Condicionais

• Seleção simples:

if( <expressão> )
<instrução> As instruções pode ser
simples ou compostas

• Seleção composta:

if( <expressão> ) Instrução composta


<instrução_1> conjunto de instruções
else simples, agrupadas por
<instrução_2> um par de chavetas {}

Programação e Computadores 18
Linguagem Java (2)

Instruções Condicionais

• É possível o
encadeamento de
if...else’s

• Cada else é sempre


associado ao if
imediatamente anterior,
a menos que o uso de
chavetas imponha outra
ordem.

Programação e Computadores 19
Linguagem Java (2)

Instruções Condicionais

• Seleção de Múltipla Escolha:


A variável a usar em
switch( <variável> ){ switch apenas pode ser
case <valor_1>: dos tipos byte, short,
<grupo_instruções_1> int, char ou String
break;
case <valor_2>:
<grupo_instruções_1>
break;
(...)
case <valor_n>:
<grupo_instruções_1>
break;
default: O caso default é
<grupo_instruções_default> opcional
}

Programação e Computadores 20
Linguagem Java (2)

Seleção de Múltipla Escolha

Exemplo – ler um número


inteiro entre 1 e 7 e escrever o
dia da semana correspondente
por extenso

Podem-se combinar vários cases:

Programação e Computadores 21
Linguagem Java (2)

Seleção de Múltipla Escolha

A partir da versão Java 14 passou a existir uma sintaxe alternativa:

• Evita a colocação
da instrução break

• Em vez de : usa-se
o operador ->

Programação e Computadores 22
Linguagem Java (2)

Operador ternário - ? : (3 operandos = 3 expressões)

<expressão1> ? <expressão2> : <expressão3>

• O resultado é expressão2 se a expressão1 for verdadeira;

• O resultado é expressão3 se a expressão1 for falsa.

Esta expressão pode substituir a instrução if ... else em determinadas


situações.

if( a > b)
c = a; equivale a c = a > b ? a : b;
else
c = b;

Programação e Computadores 23
Linguagem Java (2)

Escrever o maior de
três números inteiros
usando if’s

Programação e Computadores 24
Linguagem Java (2)

Escrever o maior de
três números inteiros
usando o operador ?:

(x > y && x > z) ? x : ( y > z ? y : z )

Programação e Computadores 25
Linguagem Java (2)

Instrução Condicional Português Estruturado Java


Seleção simples se( <expressão> ) if( <expressão> )
<instrução> <instrução>
Seleção composta se( <expressão> ) if( <expressão> )
<instrução_1> <instrução_1>
senao else
<instrução_2> <instrução_2>
Seleção de múltipla escolha( <variável> ){ switch( <variável> ){
escolha caso valor_1: case valor_1:
<instruções_1> <instruções_1>
(em Java pode-se usar pare break;
-> em vez de : e (...) (...)
eliminar o break) caso valor_n: case valor_n:
<instruções_n> <instruções_n>
pare break;
casocontrario: default:
<instruções_def> <instruções_def>
} }

Programação e Computadores 26

Você também pode gostar