Upload
lamquynh
View
223
Download
0
Embed Size (px)
Citation preview
Estruturas de Decisão
Programação I Estruturas de Decisão
Prof. Carlos Alberto
Estruturas de Decisão
Expressões Lógicas
• Em C, não existe um tipo específico para a
representação de valores lógicos.
• Qualquer valor pode ser interpretado como um
valor lógico:
• “zero representa falso e qualquer outro valor
representa verdade”.
• Exemplo:
• 5, –3, 1.2 e 'a' são verdadeiros
• 0 e 4 - 4 são falsos
Estruturas de Decisão
Expressões Lógicas
• Em C, 0 representa o valor lógico "falso" e 1
representa o valor lógico "verdadeiro".
• Operadores relacionais
• Usados para gerar valores lógicos;
• Através deles podemos comparar dois valores de
diversas formas;
• O resultado da avaliação é 0 se a comparação é falsa e
1 se verdadeira.
Estruturas de Decisão
Expressões Lógicas
• Exemplo:
printf("%d %d", 5<6, 6<5)
• A saída produzida pela instrução será 1 0.
Estruturas de Decisão
Expressões Lógicas
• Operadores lógicos
• Com eles, podemos criar expressões lógicas
compostas.
• Funcionam conforme as regras definidas na lógica
matemática.
Estruturas de Decisão
Expressões Lógicas
• Precedência dos operadores aritméticos,
relacionais e lógicos:
• Primeiro avaliam-se todos os operadores aritméticos;
• Em seguida, avaliam-se os operadores relacionais;
• Só então, avaliam-se os operadores lógicos.
Estruturas de Decisão
Decisão simples
• Serve para escolher um entre dois comandos
alternativos.
• Em C, a estrutura condicional é codificada da
seguinte forma:
Estruturas de Decisão
Decisão simples
• Pode acontecer de não haver duas alternativas
em um comando de decisão simples:
• Ou o comando é executado ou não se faz nada.
• Exemplo:
• Numa empresa paga-se R$ 19,50 a hora e recolhe-se
para o imposto de renda 10% dos salários acima de R$
1.500,00. Dado o número de horas trabalhadas por um
funcionário, informar o valor do seu salário líquido.
Estruturas de Decisão
Operador ternário
• C oferece também um operador que proporciona
uma forma mais compacta de se representar
decisões simples:
• O operador ‘?’ chamado condicional ou ternário
• A sintaxe é seguinte:
condição ? expressão1 : expressão2
Estruturas de Decisão
Operador ternário
condição ? expressão1 : expressão2
• O operador ternário funciona da seguinte
maneira:
• Avalia a condição;
• Se ela for verdadeira, o resultado final é o valor da
expressão1;
• Senão, o resultado final é o valor da expressão2.
Estruturas de Decisão
Operador ternário
• Vantagem no uso do operador ternário
• pode ser utilizado em qualquer contexto em que uma
expressão é permitida.
• Exemplo:
Estruturas de Decisão
if’s aninhados
• Um if aninhado ocorre quando um if está dentro
de outro if ou else. Vejamos o seguinte exemplo:
• Dados três números verificar se eles podem
representar as medidas dos lados de um triângulo e, se
puderem, classificar o triângulo em equilátero, isósceles
ou escaleno.
• Restrições
• Para que três números representem os lados de um triângulo é
necessário que cada um deles seja menor que a soma dos
outros dois.
• Um triângulo é equilátero se tem os três lados iguais, isósceles
se tem apenas dois lados iguais e escaleno se tem todos os
lados distintos.
Estruturas de Decisão
Decisão múltipla
• Bastante adequada quando precisamos escolher
uma entre várias alternativas previamente
definidas. Exemplo: menu
• Testa sucessivamente o valor de uma expressão
contra uma lista de constantes inteiras ou de
caractere;
• Quando o valor coincide, os comandos
associados àquela constante são executados.
Estruturas de Decisão
Decisão múltipla
• Sintaxe
switch (expressão-de-seleção) {
case constante1:
sequência de comandos
break;
case constante2:
sequência de comandos
break;
...
default:
sequência de comandos
}
Estruturas de Decisão
Decisão múltipla
• A comparação é feita somente no caso da
igualdade, porém podemos listar uma série de
valores para a comparação e, a partir de um
deles, quando igual, executar um ou um conjunto
de comandos.
• Em muitos casos ele é preferido pelos
programadores no lugar do comando condicional
se, pelo aspecto visual e de organização que
proporciona ao programa.
Estruturas de Decisão
Decisão múltipla
• Diferença do switch para o if:
• switch só pode testar igualdade;
• if pode avaliar expressão lógica ou relacional;
• Duas constantes case no mesmo switch não
podem ter os mesmos valores;
• O break é opcional. Se for omitido, a execução
continua pelos próximos comandos case até
encontrar um break ou o fim do switch.
Estruturas de Decisão
Decisão múltipla
• Não existe restrição alguma quanto aos tipos de
comandos que podem estar associados a um
determinado case dentro do comando switch.
• Exemplo:
Suponha que antes de efetuar uma divisão seja
necessário verificar se o divisor é diferente de zero.
Nesse caso, deve-se incluir um comando if dentro do
switch. Isso pode ser feito sem nenhum problema.