Buscar

04 Operadores Lógicos IF ELSE Cast - Aula IP CIn UFPE

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 4 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

© Ricardo Massa e Sérgio Soares 1 
Graduação em Ciência da Computação - CIn/UFPE - Introdução à Programação - IF669 
Operadores Lógicos e Relacionais 
Comandos condicionais (if-else) 
Casting 
AULA 04 
Introdução a Programação – IF669 
http://www.cin.ufpe.br/~if669 
4 
a b !b a && b a || b a ^ b 
true true false true true false 
true false true false true true 
false true false false true true 
false false true false false false 
^ é o 
operador de 
disjunção 
exclusiva 
6 
Qual o valor de b e c a cada passo? 
© Ricardo Massa e Sérgio Soares 2 
Graduação em Ciência da Computação - CIn/UFPE - Introdução à Programação - IF669 
7 
boolean b, c; 
b = true || false; 
c = true && b; 
b = b == c; 
Qual o valor de b e c a cada passo? 
8 
Sem abre-fecha chaves 
Padrão Só um if 
if encadeado 
Bloco = comandos delimitados por { e } 
Scanner in = new Scanner(System.in); 
int n1, n2, n3; 
System.out.println("Digite o primeiro inteiro"); 
n1 = in.nextInt(); 
System.out.println("Digite o segundo inteiro"); 
n2 = in.nextInt(); 
System.out.println("Digite o terceiro inteiro"); 
n3 = in.nextInt(); 
if ( (n1 > n2) && (n1 > n3) ) { 
 System.out.println(n1); 
} else if (n2 > n3) { 
 System.out.println(n2); 
} else { 
 System.out.println(n3); 
} 
Como tornar a solução 
mais genérica? 
Conceito Intervalo 
A 8,5 ≤ nota ≤ 10,0 
B 7,0 ≤ nota < 8,5 
C 5,0 ≤ nota < 7,0 
D 3,0 ≤ nota < 5,0 
E nota < 3,0 
© Ricardo Massa e Sérgio Soares 3 
Graduação em Ciência da Computação - CIn/UFPE - Introdução à Programação - IF669 
byte b = 1; 
short s = b; 
int i = s; 
long l = i; 
float f = i; 
double d = f; 
s = i; 
l = i; 
i = b; 
f = d; 
Algum problema? Onde? 
s = (short)i; 
f = (float)d; 
Solução usando cast 
Erro de compilação 
Valores int são maiores que short 
Valores double maiores que float 
double  float  long  int 
byte a = 1 + 1.0; 
byte b = 1 + 1; 
byte c = 1 + b; 
Algum problema? Onde? 
Erro de compilação (double) 
OK (int), 2 cabe no byte 
Erro de compilação (int), mas 
como b é uma variável, não 
sabemos se caberá 
O Compilador não armazena 
valores, só checa os tipos 
long p = (long) 12345.56; !
int g = p; !!
char c = ‘t’;!
int j = c; !
short k = c; !
short k = (short) c; !
float f = 12.35; !
ok! p = 12345L 
Erro! Apesar de um int suportar o valor 12345 
Casting automático! 
Erro! Não faz casting automático de char para short 
(e vice-versa), mesmo com o tamanho dos tipos iguais. 
ok! Casting Explícito! 
Ilegal! 12.35 é um double! 12 estaria 
correto, faria o casting de int para float 
“Operator Precedence in Java” 
Todas as soluções dos exercícios sempre em 
http://www.cin.ufpe.br/~if669/material/solucoes 
© Ricardo Massa e Sérgio Soares 4 
Graduação em Ciência da Computação - CIn/UFPE - Introdução à Programação - IF669 
1º 2º 
4º 3º x 
y 
€ 
IMC = pesoaltura2
IMC calculado Mensagem 
IMC≤ 18,5 abaixo do peso 
18,5<IMC≤25 peso normal 
25<IMC≤30 acima do peso 
30<IMC obeso 
A solução está um pouco mais interessante

Continue navegando