Baixe o app para aproveitar ainda mais
Prévia do material em texto
Linguagem e Técnicas de Programação 10 – Estruturas de Seleção 1 Centro Universitário do Pará – Cesupa Área de Ciências Exatas e Tecnologia Professor Odlaniger Lourenço Damaceno Monteiro | odlaniger.lourenco@gmail.com Agenda Estruturas de controle Sequencia Seleção simples - if Seleção composta – if/else Operador condicional Aninhamento Blocos Seleção múltipla escolha - switch/case Professor Odlaniger Lourenço Damaceno Monteiro | odlaniger.lourenco@gmail.com 2 Estruturas de controle Transferência de controle Três técnicas de transferência de controle podem especificar a ordem dos comandos Estrutura de sequencia Estrutura de seleção Estrutura de repetição 3Professor Odlaniger Lourenço Damaceno Monteiro | odlaniger.lourenco@gmail.com Estruturas de Controle em Java Estrutura sequencial Estruturas de seleção if if/else switch/case Estruturas de repetição while do/while for 4Professor Odlaniger Lourenço Damaceno Monteiro | odlaniger.lourenco@gmail.com Estrutura Sequencial Os comandos são executados um a um, de cima para baixo, da esquerda para direita. Após o início da execução, todos os comandos são executados, sem exceção. { comando_1; comando_2; comando_3; } 5Professor Odlaniger Lourenço Damaceno Monteiro | odlaniger.lourenco@gmail.com Estruturas de seleção Também chamados de comandos condicionais Condicional Simples Condicional Composto Condicional Seleção Múltipla 6Professor Odlaniger Lourenço Damaceno Monteiro | odlaniger.lourenco@gmail.com Condicional Simples Algoritmos: se <expressão-lógica> entao <seqüência-de-comandos> fimse Java: if (<expressão-lógica>) { <sequência-de-comandos> } <expressão-lógica> <sequência-de- comandos> 7Professor Odlaniger Lourenço Damaceno Monteiro | odlaniger.lourenco@gmail.com Funcionamento do if simples Ao encontrar este comando, é feita a análise da <expressão-lógica>. Se o seu resultado for VERDADEIRO, todos os comandos da <sequência-de-comandos> são executados. Se o resultado for FALSO, estes comandos são desprezados e a execução do algoritmo continua a partir da primeira linha depois do comando. Professor Odlaniger Lourenço Damaceno Monteiro | odlaniger.lourenco@gmail.com 8 A estrutura de seleção if Exemplo: Suponha verificar se o aluno tem média para passar direto (nota>=7) 9 Algoritmo: Se a média do aluno for maior ou igual a 7 Imprimir “Aprovado” Java: if ( media >= 7) System.out.println(“Aprovado”); Professor Odlaniger Lourenço Damaceno Monteiro | odlaniger.lourenco@gmail.com Exemplo11 - if Professor Odlaniger Lourenço Damaceno Monteiro | odlaniger.lourenco@gmail.com 10 //Uso da estrutura de seleção if import javax.swing.JOptionPane; //habilita o uso da classe JOptionPane public class Exemplo11 { //cabeçalho da classe public static void main (String args[]) { //cabeçalho do método main String entrada; //variável para a entrada de dados float nota1, nota2, media; //variáveis para cálculos //entrada da nota do primeiro bimestre entrada = JOptionPane.showInputDialog("Forneça a nota do primeiro bimestre"); //conversão de texto (entrada) pata float (nota1) nota1 = Float.parseFloat(entrada); //entrada da nota do segundo bimestre entrada = JOptionPane.showInputDialog("Forneça a nota do segundo bimestre"); //conversão de texto (entrada) pata float (nota2) nota2 = Float.parseFloat(entrada); //cálculo da média media = (nota1 + nota2) / 2; //saída do resultado da média JOptionPane.showMessageDialog(null, "Média: "+media); //saída do texto somente quando a média for maior ou igual a 7 if ( media >= 7 ) JOptionPane.showMessageDialog(null, "Aprovado direto"); System.exit(0); } //fim do método main } //fim da classe ExemploIf Condicional Composto Algoritmo: se <expressão-lógica> entao <seqüência-de-comandos-1> senao <seqüência-de-comandos-2> fimse Java: if (<expressão-lógica>){ <seqüência-de-comandos-1> } else{ <seqüência-de-comandos-2> } fimse <expressão- lógica> 11Professor Odlaniger Lourenço Damaceno Monteiro | odlaniger.lourenco@gmail.com Condicional Composto if/else Nesta outra forma do comando, se o resultado da avaliação de <expressão-lógica> for VERDADEIRO, todos os comandos da <seqüência-de-comandos-1> são executados, e a execução continua depois a partir da primeira linha depois do comando. Se o resultado for FALSO, estes comandos são desprezados e o algoritmo continua a ser executado a partir da primeira linha depois do else, executando todos os comandos da <seqüência-de-comandos-2>. 12Professor Odlaniger Lourenço Damaceno Monteiro | odlaniger.lourenco@gmail.com A estrutura de seleção if / else Exemplo: Suponha verificar se o aluno tem ou não média para passar direto ( nota >= 7 ) 13 Se a média do aluno for maior ou igual a 7 Imprimir “Aprovado” Senão Imprimir “Não Aprovado” if ( media >= 7 ) System.out.println(“Aprovado”); else System.out.println(“Não Aprovado”); Professor Odlaniger Lourenço Damaceno Monteiro | odlaniger.lourenco@gmail.com Exemplo12 – if/else Professor Odlaniger Lourenço Damaceno Monteiro | odlaniger.lourenco@gmail.com 14 //Uso da estrutura de seleção if/else import javax.swing.JOptionPane; //habilita o uso da classe JOptionPane public class Exemplo12 { //cabeçalho da classe public static void main (String args[]) { //cabeçalho do método main String entrada; //variável para a entrada de dados float nota1, nota2, media; //variáveis para cálculos //entrada da nota do primeiro bimestre entrada = JOptionPane.showInputDialog("Forneça a nota do primeiro bimestre"); //conversão de texto (entrada) pata float (nota1) nota1 = Float.parseFloat(entrada); //entrada da nota do segundo bimestre entrada = JOptionPane.showInputDialog("Forneça a nota do segundo bimestre"); //conversão de texto (entrada) pata float (nota2) nota2 = Float.parseFloat(entrada); //cálculo da média media = (nota1 + nota2) / 2; //saída do resultado da média JOptionPane.showMessageDialog(null, "Média: "+media); //saída do texto somente quando a média for maior ou igual a 7 if ( media >= 7 ) JOptionPane.showMessageDialog(null, "Aprovado direto"); else JOptionPane.showMessageDialog(null,"Não aprovado direto"); System.exit(0); } //fim do método main } //fim da classe Dica Recue ambas as instruções do corpo de uma estrutura if/else 15 if ( media >= 7 ) JOptionPane.showMessageDialog(null, "Aprovado direto"); else JOptionPane.showMessageDialog(null,"Não aprovado direto"); Professor Odlaniger Lourenço Damaceno Monteiro | odlaniger.lourenco@gmail.com Operador condicional (?:) É uma forma de abreviar uma instrução if/else Pode ser usado quando o mesmo comando é usado tanto no if quanto no else, mudando apenas os parâmetros 16 System.out.println( (media >= 7) ? “Aprovado” : “Não aprovado” ); if ( media >= 7) System.out.println(“Aprovado”); else System.out.println(“Não Aprovado”); Professor Odlaniger Lourenço Damaceno Monteiro | odlaniger.lourenco@gmail.com Exemplo13 – Operador condicional Professor Odlaniger Lourenço Damaceno Monteiro | odlaniger.lourenco@gmail.com 17 //Uso da estrutura de seleção com operador condicional import javax.swing.JOptionPane; //habilita o uso da classe JOptionPane public class Exemplo13 { //cabeçalho da classe public static void main (String args[]) { //cabeçalho do método main String entrada; //variável para a entrada de dados float nota1, nota2, media; //variáveis para cálculos //entrada da nota do primeiro bimestre entrada= JOptionPane.showInputDialog("Forneça a nota do primeiro bimestre"); //conversão de texto (entrada) pata float (nota1) nota1 = Float.parseFloat(entrada); //entrada da nota do segundo bimestre entrada = JOptionPane.showInputDialog("Forneça a nota do segundo bimestre"); //conversão de texto (entrada) pata float (nota2) nota2 = Float.parseFloat(entrada); //cálculo da média media = (nota1 + nota2) / 2; //saída do resultado da média JOptionPane.showMessageDialog(null, "Média: "+media); //saída do texto que mostra a situação do aluno JOptionPane.showMessageDialog(null, media >= 7 ? "Aprovado direto" : "Não aprovado direto"); System.exit(0); } //fim do método main } //fim da classe Aninhamento Podemos aninhar estruturas if/else para múltiplas decisões sequencias Algoritmo: 18 Se a média do aluno for maior ou igual a 7 Imprimir “Aprovado Direto” Senão Se a média do aluno for maior ou iguala a 5 Imprimir “Prova Final” Senão Imprimir “Reprovado Direto” Professor Odlaniger Lourenço Damaceno Monteiro | odlaniger.lourenco@gmail.com Aninhamento Java: 19 if ( media >= 7) System.out.println(“Aprovado Direto”); else if ( media >=5 ) System.out.println(“Prova Final”); else System.out.println(“Reprovado Direto”); Se existirem vários níveis de recuo, cada nível deve ser recuado pela mesma quantidade adicional de espaço. Professor Odlaniger Lourenço Damaceno Monteiro | odlaniger.lourenco@gmail.com Exemplo14 – Aninhamento Professor Odlaniger Lourenço Damaceno Monteiro | odlaniger.lourenco@gmail.com 20 //Uso da estrutura de seleção com aninhamento import javax.swing.JOptionPane; //habilita o uso da classe JOptionPane public class Exemplo14 { //cabeçalho da classe public static void main (String args[]) { //cabeçalho do método main String entrada; //variável para a entrada de dados float nota1, nota2, media; //variáveis para cálculos entrada = JOptionPane.showInputDialog("Forneça a nota do primeiro bimestre"); nota1 = Float.parseFloat(entrada); entrada = JOptionPane.showInputDialog("Forneça a nota do segundo bimestre"); nota2 = Float.parseFloat(entrada); media = (nota1 + nota2) / 2; JOptionPane.showMessageDialog(null, "Média: "+media); if ( media >= 7 ) JOptionPane.showMessageDialog(null,"Aprovado direto"); else if ( media >= 5 ) JOptionPane.showMessageDialog(null, "Prova Final"); else JOptionPane.showMessageDialog(null, "Reprovado direto"); System.exit(0); } //fim do método main } //fim da classe Blocos de instruções Quando queremos agrupar mais de uma instrução, podemos criar um bloco de instruções Um bloco começa com chave { e termina com chave } Bastante usado em estruturas de seleção if, if/else e laços de repetição O bloco pode ser colocado em qualquer lugar de um programa em que se possa colocar uma instrução simples Esquecer uma ou ambas as chaves que delimitam um bloco pode levar a erros de sintaxe ou erros de lógica 21Professor Odlaniger Lourenço Damaceno Monteiro | odlaniger.lourenco@gmail.com Bloco de instruções 22 if ( media >= 7 ) { System.out.println(“Aprovado”); System.out.println(“Muito bem !”); } else { System.out.println(“Não Aprovado”); System.out.println(“Precisa repetir a disciplina”); } Professor Odlaniger Lourenço Damaceno Monteiro | odlaniger.lourenco@gmail.com A estrutura de seleção switch-case A estrutura switch-case se refere a uma outra modalidade de desvio da execução do programa de acordo com certas condições, semelhante ao uso da instrução if Ao trabalhar com uma grande quantidade de desvios condicionais contendo instruções if, pode-se comprometer a inteligibilidade do programa, deixando-o difícil de ser interpretado A estrutura switch-case fornece uma forma mais adequada e eficiente de atender a este tipo de situação, constituindo-se uma estrutura de controle com múltipla escolha 23Professor Odlaniger Lourenço Damaceno Monteiro | odlaniger.lourenco@gmail.com A estrutura de seleção switch-case A estrutura switch-case equivale a um conjunto de instruções if encadeadas, fornecendo maior inteligibilidade e eficiência durante a execução A <expressão> só pode ser de valores inteiros ou caracteres Não pode ser usado para valores String, float ou double O comando break é obrigatório para cada item do switch 24 switch (<expressão>){ case 1: instruções; break; case 2: instruções; break; case 3: instruções; break, default : instruções; } Professor Odlaniger Lourenço Damaceno Monteiro | odlaniger.lourenco@gmail.com Professor Odlaniger Lourenço Damaceno Monteiro | odlaniger.lourenco@gmail.com 25 Exemplo15 – switch/case Professor Odlaniger Lourenço Damaceno Monteiro | odlaniger.lourenco@gmail.com 26 //Uso da estrutura de seleção switch/case import javax.swing.JOptionPane; public class Exemplo15{ public static void main (String args[]){ int x; x = Integer.parseInt(JOptionPane.showInputDialog("Digite um número de 0 a 9")); switch(x){ case 0: JOptionPane.showMessageDialog(null,"zero"); break; case 1: JOptionPane.showMessageDialog(null,"um"); break; case 2: JOptionPane.showMessageDialog(null,"dois"); break; case 3: JOptionPane.showMessageDialog(null,"três"); break; case 4: JOptionPane.showMessageDialog(null,"quatro");break; case 5: JOptionPane.showMessageDialog(null,"cinco"); break; case 6: JOptionPane.showMessageDialog(null,"seis"); break; case 7: JOptionPane.showMessageDialog(null,"sete"); break; case 8: JOptionPane.showMessageDialog(null,"oito"); break; case 9: JOptionPane.showMessageDialog(null,"nove"); break; default: JOptionPane.showMessageDialog(null,"inválido"); } System.exit(0); } }
Compartilhar