Os comandos de decisão na Linguagem C servem para desviar o fluxo da execução do programa, dando
possibilidades de decisão a
partir de uma condição prévia.
Normalmente, os comandos de
decisões baseiam-se em uma comparação lógica e, para isso, usamos os operadores
lógicos. Abaixo mostraremos novamente os principais operadores relacionais que
podem ser usados na Linguagem C:
> Maior
>= Maior ou Igual
< Menor
<= Menor ou Igual
== Igualdade
!= Não Igual
Além dos operadores relacionais,
temos os conectivos lógicos, que servem para podermos criar as expressões de
relações. São eles:
|| Ou Lógico
&& E Lógico
! Negação
Com esses operadores é possível fazer mais de
uma comparação lógica e usarmos as expressões para tomarmos decisões mais
complexas em nossos programas, como por exemplo:
a) (3>2) && (5>3): como temos a primeira
expressão verdade e a segunda também verdade. O resultado da sentença é
verdade.
b) (3>4) || (5>3): como temos a primeira expressão
falsa e a segunda verdade. O resultado da sentença é verdade.
As tabelas dos conectores lógicos
são as seguintes: Para o Ou (||)
EXPRESSÃO 1 EXPRESSÃO 2 RESULTADO
Verdade Verdade Verdade
Verdade Falso Verdade
Falso Verdade Verdade
Falso Falso Falso
Para o E (&&)
EXPRESSÃO 1 EXPRESSÃO 2 RESULTADO
Verdade Verdade Verdade
Verdade Falso Falso
Falso Verdade Falso
Falso Falso Falso
Para o Não (! )
EXPRESSÃO 1 RESULTADO
! Verdade Falso
! Falso Verdade
Os conectores das expressões
lógicas são bastante utilizados para os comandos de decisões e repetições, os
quais são usados como comparações para as decisões e repetições necessárias em
um programa.
Sobre os comandos de decisões na
Linguagem C, temos:
- Comando
if
- Comando
switch
- Operador
Ternário
Comando if
O comando “if” é o conhecido “se”
que já foi trabalhado no caderno de algoritmos e estrutura de dados. Sua
sintaxe mais simples é:
if (condição Lógica)
instrução;
Exemplo:
Vejamos um programa em C que
recebe dois números e diz se o primeiro é maior que o segundo. #include
<stdio.h>
void main(){
int num1, num2;
printf ("entre com o
primeiro numero"); scanf ("%d", &num1);
printf ("entre com o segundo
numero"); scanf ("%d", &num2);
if (num1 > num2)
printf ("Numero 1 %d maior
que Numero 2 %d", num1, num2);
}
Nesse caso, notemos que o if
atende apenas à condição verdade como também só existe uma instrução caso a
condição seja verdade. Porém, podemos ter diversos comandos dentro do if,
bastando para isso usarmos as chaves, vejamos a sintaxe:
if (condição Lógica){
Instrução1; Instrução2;
InstruçãoN;
}
No exemplo abaixo, usaremos a
comparação entre dois números e se o primeiro for maior que o segundo
efetuaremos a subtração dos dois números, mostrando a diferença entre eles.
Vejamos o código:
#include <stdio.h> void
main(){
int num1, num2, dif ;
printf ("entre com o
primeiro numero"); scanf ("%d", &num1);
printf ("entre com o segundo
numero"); scanf ("%d", &num2);
if (num1 > num2){
printf ("Numero 1 %d maior
que Numero 2 %d", num1, num2); dif=num1-num2;
printf ("\n A diferenca
entre os dois numeros e %d", dif);
}
}
Bem, mas se desejarmos não só
sabermos se o primeiro é maior que o segundo e calcularmos a diferença destes
mas também se o primeiro não for maior que o segundo efetuarmos a soma destes
números? Para isso usaremos o comando if completo, com o uso do “else”, vejamos
a sintaxe:
if (condição Lógica){
}else{
}
Instrução1; Instrução2;
InstruçãoN;
Instrução1; Instrução2;
InstruçãoN;
Vejamos agora como fica o exemplo
implementado:
#include <stdio.h> void
main(){
int num1, num2, dif, som;
printf ("entre com o
primeiro numero"); scanf ("%d", &num1);
printf ("entre com o segundo
numero"); scanf ("%d", &num2);
if (num1 > num2){
printf ("Numero 1 %d maior
que Numero 2 %d", num1, num2); dif=num1-num2;
printf ("\n A diferenca
entre os dois numeros e %d", dif);
} else{
printf ("Numero 1%d menor
que Numero 2%d", num1, num2); som=num1+num2;
printf ("\ A soma entre os
dois numeros e %d", som);
}
Também podemos ter casos em que é necessário o uso de diversos comandos if para tomadas de decisões de maior complexidade. Nestes casos, devemos sempre ter cuidado com os blocos de comando if, sempre controlando o inicio e o fim dos mesmos. Logo, também podemos usar os conectores lógicos formando expressões lógicas para simplificar o uso dos if.
Fonte: Linguagem da programação I, UFERSA, Macedo, Luiz