Baixe o app para aproveitar ainda mais
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
Compartilhar