Baixe o app para aproveitar ainda mais
Prévia do material em texto
Estruturas condicionais – Parte 2 Prof. Bruno Nogueira Tipo primitivo boolean Estruturas condicionais 2 } Variáveis do tipo primitivo boolean podem ser usadas em testes de estruturas condicionais } Facilitam legibilidade if ((temperatura <= 100) && (velocidade >= 120) && (pressaoCabine > 30)) System.out.println(“Sequência pode ser iniciada!”); else System.out.println(“Não é possível iniciar a sequência!”); Tipo primitivo boolean Estruturas condicionais 3 } Variáveis do tipo primitivo boolean podem ser usadas em testes de estruturas condicionais } Facilitam legibilidade boolean sistemaPronto = false; ... if (sistemaPronto) System.out.println(“Sequência pode ser iniciada!”); else System.out.println(“Não é possível iniciar a sequência!”); Tipo primitivo boolean Estruturas condicionais 4 } É possível atribuir o valor de uma expressão booleana a uma variável do tipo boolean int numero = -1; boolean ehPositivo = (numero > 0); if (ehPositivo) System.out.println(“Número positivo!”); else System.out.println(“Número negativo ou zero!”); Regras de precedência Estruturas condicionais 5 } Java avalia expressões booleanas usando a mesma estratégia de expressões aritméticas } Precedências são respeitadas } Resolução por partes int numero = 95; if ((numero >= 80) && (numero < 90)) ... true && false false Ordem de precedência Estruturas condicionais 6 MAIOR PRECEDÊNCIA } Primeiro: operadores unários: +, -, !, ++ e -- } Segundo: operadores binários *, / e % } Terceiro: operadores binários + e – } Quarto: operadores lógicos <, >, <=, >= } Quinto: operadores lógicos ==, != } Sexto: operador lógico && } Sétimo: operador lógico || MENOR PRECEDÊNCIA Ordem de precedência Estruturas condicionais 7 } Exemplos: Dê o valor lógico resultante das seguintes operações: (score < ((minimo / 2) – 10)) || (score > 90) int score = 95, minimo = 100; boolean resultado = score < minimo / 2 – 10 || score > 90 true Ordem de precedência Estruturas condicionais 8 } Exemplos: Dê o valor lógico resultante das seguintes operações: (tarefasCompletas > 0) && ((notaTotal / tarefasCompletas) > 6)) int tarefasCompletas = 5, notaTotal = 38; boolean resultado = tarefasCompletas > 0 && notaTotal / tarefasCompletas > 6 true O comando switch Estruturas condicionais 9 } Quando se tem múltiplos comandos if-else, com diferentes saídas possíveis, pode-se ser difícil de ler e trabalhoso de escrever char grauFinal; ... if (grauFinal == ‘A’) System.out.println(“Aprovado com louvor!”); else if (grauFinal == ‘B’) System.out.println(“Aprovado com bom desempenho!”); else if (grauFinal == ‘C’) System.out.println(“Aprovado com desempenho mínimo!”); else System.out.println(“Reprovado.”); O comando switch Estruturas condicionais 10 } Para casos como este, é possível usar o comando switch char grauFinal; ... switch (grauFinal){ case ‘A’: System.out.println(“Aprovado com louvor!”); break; case ‘B’: System.out.println(“Aprovado com bom desempenho!”); break; case ‘C’: System.out.println(“Aprovado com desempenho mínimo!”); break; default: System.out.println(“Reprovado.”); break; } O comando switch Estruturas condicionais 11 } Oferece opções de ações de acordo com o valor da expressão de controle } Sintaxe: switch (Expressão_de_Controle) { case VALOR: COMANDO break; ... default: COMANDO break; } O comando switch Estruturas condicionais 12 } Expressão de controle } Determina os possíveis valores que serão testados } Sempre vem delimitada com parênteses } Geralmente avalia uma variável, mas pode ser expressão } Deve resultar em valores int, char ou String (JVM ≥ 7) } Lista de casos } Dentro das chaves } Cada caso é delimitado pela palavra chave case, seguido por uma constante (valor do caso) switch (Expressão_de_Controle) { case VALOR: COMANDO break; ... default: COMANDO break; } O comando switch Estruturas condicionais 13 } Lista de casos } Quando o comando switch é executado, a expressão de controle é testada } A lista de casos é percorrida, de cima para baixo, até que se encontre o valor correspondente ao teste da expressão de controle } Ação correspondente é executada } Tem que ser valores discretos } Valores exatos } Não pode indicar intervalos } Um caso para cada valor switch (Expressão_de_Controle) { case VALOR: COMANDO break; ... default: COMANDO break; } O comando switch Estruturas condicionais 14 } O comando break } Sempre seguido do ‘;’ } Delimita as ações } Se não colocado dentro de um determinado caso, as ações dos comandos subsequentes são executadas, até que se encontre um break } Uma vez executado, encerra o comando switch switch (Expressão_de_Controle) { case VALOR1: COMANDO1 case VALOR2: COMANDO2 break; ... } Neste exemplo, COMANDO1 e COMANDO2 são executados O comando switch Estruturas condicionais 15 } O comando default } É executado quando nenhum outro valor corresponde ao obtido na expressão de avaliação } É opcional, mas recomenda-se o uso } Pode, por exemplo, imprimir uma mensagem de erro se todos os valores possíveis foram esgotados nos outros casos Exemplo Estruturas condicionais 16 Estruturas condicionais 17 Estruturas condicionais 18 Executado caso o valor de numeroDeBebes seja 4 ou 5 Enumeradores Estruturas condicionais 19 } Imagine que você é um revisor de filmes e precisar classificar cada um como Excelente, Mediano ou Ruim } No seu programa Java, por exemplo, você poderia representar as notas como um inteiro (3, 2 e 1) ou como um caractere (E, M e R) } Se você criar uma variável int ou char, ela poderá assumir outros valores que não esses especificados } Para restringir os possíveis valores, pode-se usar um enumerador de valores – tipo de dados enumerados } Tipo de dados enum enum NotaFilme {E, M, R} Enumeradores Estruturas condicionais 20 } Tipo de dados enum } Não precisam de ‘;’ ao final (embora adicionar não seja errado) } Valores não são entre aspas – não são chars! } São tratados como tipo classe, sendo possível declarar variáveis } Só pode ser associada a valores que estão na declaração do enum. Qualquer outro valor gera erro enum NotaFilme {E, M, R} NotaFilme nota; nota = NotaFilme.E; Enumeradores Estruturas condicionais 21 } Valores nos enumeradores não necessariamente precisam ser apenas letras enum NotaFilme {EXCELENTE, MEDIANO, RUIM} NotaFilme nota; nota = NotaFilme.EXCELENTE; Enumeradores Estruturas condicionais 22 } Podem ser usados para auxiliar nos comandos switch enum NotaFilme {E, M, R}; ... NotaFilme nota; ... switch (nota){ case E: ... break; case M: ... break; default: ... break; } Estruturas condicionais 23 Estruturas condicionais 24 Transforma do tipo String para o tipo NotaFilmes Exercício Estruturas condicionais 25 } Para o cálculo do IPTU, uma determinada cidade cobra taxas diferentes de acordo com o tipo do imóvel. As taxas cobradas são as seguintes: } Imóvel residencial: 100 reais o metro quadrado } Imóvel rural: 80 reais o metro quadrado } Imóvel industrial: 150 reais o metro quadrado Faça um programa em Java que peça ao usuário para informar o tipo de seu imóvel e o tamanho, em metros quadrados e retorne o valor a ser pago. Use um enumerador para o tipo do imóvel. Exercício II Estruturas condicionais 26 } Incremente o programa anterior para estimar taxas adicionais ao programa anterior, para incrementar o cálculo: } Imóveis residenciais, se tiverem vagas de estacionamento,têm uma taxa de 50 reais por vaga } Imóveis industriais, se tiverem vagas de estacionamento, têm uma taxa de 80 reais por vaga O usuário deve informar se há ou não vagas (somente caso o imóvel seja do tipo urbano ou industrial) e, caso haja, o número de vagas que há naquele imóvel.
Compartilhar