Buscar

06 Estruturas de Seleção

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 16 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

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 6, do total de 16 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

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 9, do total de 16 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

ALGORITMOS DE 
PROGRAMAÇÃO
Marcela Santos
Estruturas de seleção
Introdução
Ao final deste texto, você deve apresentar os seguintes aprendizados:
 „ Usar as estruturas de seleção if-else e switch.
 „ Criar programas que usam as estruturas de seleção simples, composta 
e encadeada.
 „ Resolver problemas computacionais com a estrutura de seleção 
ternária.
Objetivos de aprendizagem
Em programação, podemos construir programas sequenciais, ou seja, 
que possuem somente um fluxo de execução. Todavia, existem casos 
que isso não é o suficiente para resolver um determinado problema. Uma 
estrutura de decisão é uma ferramenta utilizada para modificarmos o fluxo 
de execução de um programa. Com esse tipo de estrutura, é possível 
escolher um grupo de ações a serem executadas de acordo com o valor 
lógico de alguma expressão lógica e/ou relacional. 
Neste capítulo, você estudará a construção de um algoritmo, os con-
ceitos básicos envolvidos, os tipos e o funcionamento da estrutura de 
seleção.
As estruturas de seleção if-else e switch
Quando criamos um programa de computador, utilizamos a seguinte sequência 
de operações na grande maioria das vezes: entrada de dados, processamento 
e saída. Para que essas operações sejam executadas de forma a resolver o 
problema ou a realizar uma determinada tarefa, é importante que ele siga um 
fluxo de execução que faça sentido, ou seja, que tenha uma determinada lógica.
Quando existe somente um fluxo de execução, ou seja, não há a necessidade 
de escolha entre dois ou mais caminhos, chamamos a execução de sequencial. 
Ela segue do início do código-fonte ao final e, toda vez que for executada, terá 
a mesma ordem de execução das instruções que compõem o código-fonte. 
Mas existem situações onde é preciso que o programa tenha mais de um 
fluxo de execução. Imagine que você esteja escrevendo um programa que 
calcule a média de um aluno e mostre, ao final, a situação dele de acordo 
com essa média.
Para exemplificar, vamos usar as seguintes regras:
 „ Se a média for menor que 5, o aluno está reprovado.
 „ Se a média for maior que 5 e menor que 7, ele estará em recuperação.
 „ Acima de 7, ele será aprovado.
Não é possível que o aluno esteja em recuperação, aprovado e reprovado 
ao mesmo tempo. Então, o programa precisará ter mais de um fluxo de exe-
cução, e isso é obtido por meio da utilização de uma estrutura conhecida 
como estrutura de seleção. Esta permite que decisões sejam tomadas e ações 
diferentes sejam executadas.
Existem dois tipos de estrutura de seleção em C: if-else e switch — cada 
uma tem sua sintaxe e podem ser utilizadas em situações diferentes. Tomemos 
como exemplo um programa que, dado um número inteiro, tem como saída 
um texto mostrando se o número é maior que 0. Observe a Figura 1, a seguir.
Figura 1. Uso do if-simples.
Estruturas de seleção2
As linhas em destaque (6,7 e 8) mostram o uso da estrutura if. Nesse caso, 
o programa só vai ter um caminho diferente para seguir: quando o número 
for maior que zero. Por isso, foi usado somente o if (sem o else) e seu funcio-
namento pode ser visto no seguinte fluxograma, representado pela Figura 2.
Figura 2. Fluxograma do if-simples.
Os testes lógicos são construídos com os operadores relacionais somente, 
ou pode-se unir expressões relacionais com operadores lógicos. A sintaxe do 
if segue a seguinte regra, apresentada na Figura 3. 
Figura 3. Sintaxe do if-simples.
3Estruturas de seleção
Usando o mesmo exemplo, imagine agora que o programa deve, ao final 
da execução, dizer se o número é maior que zero ou se o número digitado é 
menor ou igual a zero. Diferentemente do primeiro exemplo, esse problema 
requer o desenvolvimento de dois fluxos de execução. Vamos dar uma olhada 
no código-fonte que resolve essa questão, na Figura 4.
Figura 4. Uso do if-else-composto.
Nas linhas em destaque, podemos ver o uso da estrutura if-else. Nesse caso, 
temos dois caminhos a tomar (por enquanto): escrever o texto referente ao número 
maior que zero; e, no caso contrário, se o número for menor ou igual a zero.
Estruturas de seleção4
A sintaxe e o funcionamento da estrutura if-else podem ser vistos a seguir, 
nas Figuras 5 e 6.
Figura 5. Sintaxe if-else-composta.
Figura 6. Fluxograma if-else-composto.
5Estruturas de seleção
O nosso segundo tipo de estrutura de seleção é o switch. Para exemplificar, 
imagine um programa que você digite o mês em formato numérico e ele retorne 
o mês em forma de texto. Na Figura 7, está representado o código-fonte que 
realiza essa tarefa.
Figura 7. Uso do switch.
Estruturas de seleção6
O switch acaba sendo uma alternativa mais simples para o if. Seu uso é 
bastante simples: quando comparamos uma variável com valores diferentes 
e temos ações específicas, caso essa variável seja igual a um dos valores 
comparados. Sua sintaxe segue as seguintes regras:
 „ Você precisa definir qual variável o switch irá avaliar.
 „ Em seguida, você tem uma sequência de casos, onde a variável é com-
parada com um valor.
 „ Cada caso é feito usando-se a palavra reservada case, seguida do valor 
e dois pontos.
Um detalhe importante em cada caso é o fato de termos, como última linha, 
a palavra reservada break, que faz com que somente um caso seja avaliado 
por vez. Essa palavra quebra a execução do switch e faz com que o fluxo siga 
para a primeira linha após o switch.
O switch é bastante utilizado quando se deseja implementar um menu. 
Imagine que você esteja desenvolvendo um jogo que tenha níveis. Um possível 
menu pode ser feito da seguinte forma, conforme Figura 8.
Figura 8. Uso do switch, implementando menu.
7Estruturas de seleção
Um detalhe importante é o uso do default. Já percebeu para que ele serve? Caso a 
variável testada não seja igual a nenhum valor presente nos cases, o switch executa 
as instruções presentes no default. 
O case só serve quando o teste que queremos fazer é por meio da utilização 
do operador igual a (==). Se for preciso fazer vários testes, mas com outros 
operadores, precisamos encadear if-elses, como será visto a seguir.
As estruturas de seleção if-else e switch
Uma estrutura de seleção simples é aquela formada por um único if. Como 
vimos anteriormente, o if sozinho é usado quando temos somente um caminho 
para seguir no fluxo de execução do programa. 
Já, quando usamos somente um if-else, estamos usando uma estrutura de 
seleção composta. Ela é usada quando é preciso tomar uma decisão e existe um 
conjunto de instruções a ser executado, caso o teste seja verdadeiro ou falso. 
Porém, existem casos onde é preciso mais que dois caminhos a seguir no 
fluxo de execução do programa. Tomemos como exemplo o programa que 
diz se um número é maior, menor ou igual a zero. Do jeito que escrevemos o 
código anteriormente, é impossível saber se o número é 0 ou menor que zero. 
Precisamos, nesse caso, implementar um programa que tenha 3 caminhos a 
seguir:
 „ maior que zero;
 „ menor que zero;
 „ igual a zero.
Estruturas de seleção8
Nesses casos, utilizamos estrutura de seleção encadeada, ou seja, uma 
dentro da outra. Segue o código do nosso problema, representado pela Figura 9, 
agora com estrutura de seleção encadeada.
Figura 9. Código para exemplificar o uso da estrutura de seleção encadeada.
Seguem algumas dicas para a escrita da estrutura de seleção composta:
 „ Quem tem teste lógico é sempre o if, o else nunca testa variável.
 „ Cada if tem o teste lógico e o conjunto de chaves para delimitar o que 
será executado dentro do if.
 „ Cada else tem seu conjunto de chaves para delimitar o que será exe-
cutado dentro do else.
 „ Fica mais fácil se o que estiver dentro do if ou do else for indentado, 
ou seja, aplicamos um recuo (com o uso da tecla tab), para indicar a 
hierarquia do código.
9Estruturas de seleçãoLembra do exemplo da situação do aluno, lá do início do nosso capítulo? 
Vamos escrever o código para resolver esse problema. Observe a Figura 10.
Figura 10. Código para exemplificar o uso da estrutura de 
seleção encadeada (situação aluno).
A estrutura de seleção ternária
O operador ternário é uma maneira que a linguagem C tem de escrever uma 
estrutura if-else de forma compactada. Como exemplo, vamos escrever um 
programa que, dados dois números, mostra o maior deles.
Vamos implementar esse programa, primeiro somente com if-else e, depois, 
substituindo um dos destes pela estrutura ternária. Veja a Figura 11, a seguir.
Estruturas de seleção10
Figura 11. Comparação entre estrutura de seleção composta e estrutura de seleção ternária.
Do lado esquerdo, temos o código com o uso do if-else interno, para avaliar 
qual o maior número. Esse if-else pode ser substituído pelas linhas 9 e 10 do 
código à direita e, especificamente, pela linha 9, onde usamos a estrutura de 
seleção ternária. A sintaxe da estrutura de seleção ternária é representada em 
seguida, na Figura 12.
Figura 12. Sintaxe da estrutura de seleção ternária.
A variável de atribuição vai receber o valor de:
 „ expressão 1, se a condição for verdadeira;
 „ expressão 2, se a condição for falsa.
Lembre-se de que a condição pode ser feita por meio do uso de operadores relacionais 
e/ou lógicos.
11Estruturas de seleção
BOOLEAN type support library. Cppreference.com, 2017. Disponível em: <http://
en.cppreference.com/w/c/types/boolean>. Acesso em: 22 fev. 2018.
PAES, R. B. Introdução à Programação com a Linguagem C. São Paulo: Novatec, 2016. 
296p.
PINHEIRO, F. A. C. Elementos de programação em C. Porto Alegre: Bookman, 2012. 548p.
SCHEINERMAN, E. R. Matemática Discreta: uma introdução. São Paulo: Thomson 
Pioneira, 2003.
Leituras recomendadas
Estruturas de seleção12
 
Encerra aqui o trecho do livro disponibilizado para 
esta Unidade de Aprendizagem. Na Biblioteca Virtual 
da Instituição, você encontra a obra na íntegra.
Conteúdo:

Continue navegando