Você está na página 1de 28

Algoritmos e Programação I

Linguagem de programação C
Comandos de decisão
Ser ou não ser...
Sumário
• Tomando decisões • Usando os operadores lógicos
• Verdadeiro e Falso em C • Expressões relacionais compost
as
• Comando if
• Exemplo
• Exemplo 01
• Exemplo 02 • Construção else-if
• Exemplo 03 • Exemplo
• Construção if-else • switch
• Exemplo 01 • Exemplo
• Exemplo 02 • Operador condicional ternário “
• Comandos if aninhados ?

• Exemplo 01
• Exemplo
• Exemplo 02
• Referências

05/07/2023 Professor Paulo Nunes 3


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


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


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


Exemplo 01 if

Este programa recebe


um número e exibe seu
Testa se o número valor absoluto.
digitado é menor
que zero. Comando executado caso o
teste seja verdadeiro.
Inverte o sinal do número.

Comando executado caso o


teste seja falso.

05/07/2023 Professor Paulo Nunes 7


Exemplo 02 if

O programa imprime uma


mensagem caso seja digitada
a letra ‘R’.

Comando executado apenas


se for digitada a letra ‘R’.

05/07/2023 Professor Paulo Nunes 8


Exemplo 03 if

Este programa conta o


número de caracteres e
palavras em uma frase.
Verifica se espaço em
branco foi digitado,
indicando uma palavra.

Recebe a digitação até


que [ENTER] seja
pressionada.

05/07/2023 Professor Paulo Nunes 9


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


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


Exemplo 01 if-else

Foram necessários dois


testes if.
05/07/2023 Professor Paulo Nunes 12
Exemplo 02 if-else

Teste lógico Comando executado


caso teste verdadeiro.

Senão for verdadeiro, executa o


comando interno ao “else”.

05/07/2023 Professor Paulo Nunes 13


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


Exemplo 01 if aninhado

Este programa verifica se o


caractere digitado é uma letra
minúscula.

Será executado apenas se ambos os


testes forem verdadeiros.

05/07/2023 Professor Paulo Nunes 15


Exemplo 02 if aninhado

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.

05/07/2023 Professor Paulo Nunes 16


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:
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.

• Esses operadores podem ser utilizados para condensar e clarear


construções do tipo if-else.

05/07/2023 Professor Paulo Nunes 17


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


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:
O operador lógico
Instrução “if” “&&” para compor a
composta 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.

05/07/2023 Professor Paulo Nunes 19


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


Exemplo construção else-if

Este programa executa as


quatro operações básicas.

05/07/2023 Professor Paulo Nunes 21


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


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


Exemplo switch

Avalia o conteúdo
da variável “op”.

Este programa executa as


quatro operações básicas.

Caso nenhum dos


valores “case” seja
encontrado. Seu uso é
opcional.

05/07/2023 Professor Paulo Nunes 24


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


Exemplo de operador ternário

Calcula o quadrado de
um número.

Expressão
Caso falsa.
avaliada.

Caso
verdadeira.

05/07/2023 Professor Paulo Nunes 26


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


O professor

05/07/2023 Professor Paulo Nunes 28

Você também pode gostar