Comandos Decisão

Comandos Decisão


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