Este documento discute comandos de decisão na linguagem de programação C. Apresenta os comandos if, if-else, else-if e switch para tomar decisões no fluxo de um programa com base em condições lógicas. Demonstra exemplos de como esses comandos podem ser usados para verificar condições e executar ações correspondentes.
3. Sumário
• Tomando decisões
• Verdadeiro e Falso em C
• Comando if
• Exemplo 01
• Exemplo 02
• Exemplo 03
• Construção if-else
• Exemplo 01
• Exemplo 02
• Comandos if aninhados
• Exemplo 01
• Exemplo 02
• Usando os operadores lógicos
• Expressões relacionais
compostas
• Exemplo
• Construção else-if
• Exemplo
• switch
• Exemplo
• Operador condicional ternário
“?”
• Exemplo
• Referências
05/07/2023 Professor Paulo Nunes 3
4. Tomando decisões
• Propriedade fundamental de uma linguagem de programação é a
capacidade de tomar decisões.
• Essa capacidade permite ao programa “decidir” que ação tomar em
determinados momentos dentro da execução das instruções.
• A linguagem C possui alguns comando e operadores que permitem um
controle total e bastante flexível das tomadas de decisão. São eles:
• O comando if
• O comando if-else
• Operadores lógicos || && !
• O comando else-if
• O comando switch
• O operador condicional ternário ? :
05/07/2023 Professor Paulo Nunes 4
5. Verdadeiro e Falso em C
• Para determinar o curso de uma ação, muitos comandos contam com
um teste condicional;
• Um teste condicional utiliza expressões condicionais para chegar a um
valor verdadeiro ou falso;
• Para a linguagem C, um valor condicional verdadeiro, é qualquer valor
diferente de zero, incluindo os números negativos;
• Um valor falso é zero.
05/07/2023 Professor Paulo Nunes 5
6. if
• Leva o computador a uma tomada de decisão simples.
• Sintaxe:
if(teste lógico)
<comando>;
• Onde:
• teste lógico é um valor ou expressão lógica;
• comando é o comando que será executado caso teste lógico seja verdadeiro.
05/07/2023 Professor Paulo Nunes 6
7. Exemplo 01 if
05/07/2023 Professor Paulo Nunes 7
Este programa recebe
um número e exibe seu
valor absoluto.
Testa se o número
digitado é menor
que zero. Comando executado caso o
teste seja verdadeiro.
Inverte o sinal do número.
Comando executado caso o
teste seja falso.
8. Exemplo 02 if
05/07/2023 Professor Paulo Nunes 8
O programa imprime uma
mensagem caso seja digitada
a letra ‘R’.
Comando executado apenas
se for digitada a letra ‘R’.
9. Exemplo 03 if
05/07/2023 Professor Paulo Nunes 9
Este programa conta o
número de caracteres e
palavras em uma frase.
Recebe a digitação até
que [ENTER] seja
pressionada.
Verifica se espaço em
branco foi digitado,
indicando uma palavra.
10. Construção if-else
• Um comando if simples executa uma única instrução ou grupo de
instruções, caso o teste lógico seja verdadeiro e nenhuma caso seja
falso;
• Associando o comando else ao if, poderemos executar uma ou um
grupo de instruções se o teste lógico do if for falso.
• Sintaxe:
if(teste lógico)
<comando 1>;
else
<comando 2>;
05/07/2023 Professor Paulo Nunes 10
11. Exemplo 01 if-else
• Imagine que você precisa determinar se um número é par ou impar. A
maneira para se fazer isso é testando o resto da divisão desse número
por 2, se o resto for “0” o número é par, se for diferente de “0”, é impar.
Veja o exemplo a seguir utilizando apenas com o comando if:
05/07/2023 Professor Paulo Nunes 11
13. Exemplo 02 if-else
05/07/2023 Professor Paulo Nunes 13
Teste lógico Comando executado
caso teste verdadeiro.
Senão for verdadeiro, executa o
comando interno ao “else”.
14. Comandos if aninhados
• Um comando if pode ser colocado dentro de outro comando
if;
• Diz-se então que o if mais interno está aninhado;
• O comando else se refere sempre ao comando if mais
próximo, que está dentro do mesmo bloco do else, e não está
associado a outro if.
05/07/2023 Professor Paulo Nunes 14
15. Exemplo 01 if aninhado
05/07/2023 Professor Paulo Nunes 15
Este programa verifica se o
caractere digitado é uma letra
minúscula.
Será executado apenas se ambos os
testes forem verdadeiros.
16. Exemplo 02 if aninhado
05/07/2023 Professor Paulo Nunes 16
Este programa gera um número
aleatório, e o usuário tenta acertar
esse número digitando um outro.
Exibe a mensagem de “Errado” e
com outro if verifica se o número
digitado é maior ou menor que o
gerado aleatoriamente.
17. Usando os operadores lógicos
• Os operadores lógicos são utilizados para montar expressões lógicas
que podem ser utilizadas em comandos como if, while e do-while;
• Destes operadores ! é unário e && e || são binários;
• Exemplo:
• Tomemos as expressões simples expre01 e expre02:
• Esses operadores podem ser utilizados para condensar e clarear
construções do tipo if-else.
05/07/2023 Professor Paulo Nunes 17
Expressão lógica Resultado
expre01 && expre02 Verdadeiro se ambas verdadeiras
expre01 || expre02 Verdadeiro se uma ou ambas forem verdadeiras
!expre01 Verdadeiro se expre01 falsa e vice-versa.
18. Expressões relacionais compostas
• Normalmente as expressões relacionais avaliam apenas uma condição
por vez, por exemplo: if(a > b) ou if( nome == ´joão´);
• Podemos criar expressões compostas, onde mais de uma condição é
analisada na mesma expressão, utilizando os operadores lógicos && (E)
e || (OU).
05/07/2023 Professor Paulo Nunes 18
19. Exemplo de expressões compostas
• Imagine um programa de notas onde os alunos recebem graduação a
partir de uma média e uma frequência. Para estar “Aprovado” , a média
deve ser igual ou superior a 7,0 e a frequência igual ou superior a 75%.
Podemos montar a seguinte composição:
05/07/2023 Professor Paulo Nunes 19
Instrução “if”
composta
O operador lógico
“&&” para compor a
expressão.
Só será executado se TODA a expressão for
verdadeira, média maior ou igual a 7 e
frequência maior ou igual a 75, ambas.
20. Construção else-if
• Construção reformatada de ninhos if-else.
if(expressão)
<comando>;
else if(expressão)
<comando>;
else if(expressão)
<comando>;
...
else
<comando>;
05/07/2023 Professor Paulo Nunes 20
22. switch
• Comando de seleção múltipla similar ao else-if;
• Testa o valor de uma expressão contra uma lista de constantes inteiras ou caractere;
• Quando a uma coincidência nos valores, os comandos associados àquela constante são
executados.
• Sintaxe:
switch(expressão) {
case constante1:
<comandos>
break;
case constante2:
<comandos>
break;
...
default:
<comandos>
}
05/07/2023 Professor Paulo Nunes 22
23. switch
• Onde:
• switch abre o bloco da estrutura;
• case constante_n: é a constante onde o valor da expressão em switch será
testada;
• <comandos> são os comandos que serão executados em cada case;
• break força a saída do bloco switch.
• O switch difere do comando if pelo fato de só poder testar igualdades,
enquanto if avalia expressões lógicas ou relacionais;
05/07/2023 Professor Paulo Nunes 23
24. Exemplo switch
05/07/2023 Professor Paulo Nunes 24
Este programa executa as
quatro operações básicas.
Avalia o conteúdo
da variável “op”.
Caso nenhum dos
valores “case” seja
encontrado. Seu uso é
opcional.
25. Operador condicional ternário ?
• Pode ser utilizado em substituição a construções if-else simples;
• É chamado de ternário por requerer três operandos;
• Sintaxe:
expressão1 ? expressão2 : expressão3
• Onde:
• expressão1 é a expressão a ser avaliada como verdadeira ou falsa;
• expressão2 é a expressão a ser executada no caso de expressão1 verdadeira e
se torna o valor da expressão ?;
• expressão3 é a expressão a ser executada no caso de expressão1 falsa e se
torna o valor da expressão ?.
05/07/2023 Professor Paulo Nunes 25
26. Exemplo de operador ternário
05/07/2023 Professor Paulo Nunes 26
Calcula o quadrado de
um número.
Expressão
avaliada.
Caso
verdadeira.
Caso falsa.
27. Referências
• Mizrahi, Victorine Viviane. Treinamento em linguagem C – Módulo
1.São Paulo: McGraw-Hill, 1990.
• Schildt, Herbert. C, Completo e Total – 3ª Ed. Revista e Atualizada. São
Paulo: Pearson Education do Brasil, 1997.
• Stephen G. Kochan. Programming in C – A complete introduction to the
C programming language. Third Edition. Indianapolis: Sams Publishing,
2005.
05/07/2023 Professor Paulo Nunes 27