Introdução
0
0

Introdução

A estrutura de decisão (condicional) IF permite, no máximo, duas possibilidades de execução dos comandos: uma possibilidade é a execução de comandos associados a condição Verdadeira e a outra possibilidade está associada a condição Falsa, c...

Grey
2 min
0
0

Encadeamento de IF's.

A estrutura de decisão (condicional) IF permite, no máximo, duas possibilidades de execução dos comandos: uma possibilidade é a execução de comandos associados a condição Verdadeira e a outra possibilidade está associada a condição Falsa, como mostra o exemplo a seguir:

if(condição) {
comandosA; <----- Esses comandos serão executados, se a condição for avaliada Verdadeira.
}
else {
comandosB; <----- Esses comandos serão executados, se a condição for avaliada Falsa.
}

 Mas, existem situações em que temos mais de duas possibilidades (p.ex. menus com várias opções de escolha). Nesses casos nos vemos obrigados a arrumar a estrutura condicional para possibilitar a representação desses "Caminhos". Estamos falando do "Encadeamento de if´s". O encadeamento de if´s possibilita uma representação da estrutura de if para tratar situações onde temos mais de 2 possibilidades.  

if(condição1) {
comandosA; <----- Esses comandos serão executados, se a condição1 for avaliada Verdadeira.
}
else {
if (condição2) {
comandosB; <----- Esses comandos serão executados, se a condição2 for avaliada Verdadeira.
}
else {
if (condição3) {
comandosC; <----- Esses comandos serão executados, se a condição3 for avaliada Verdadeira.
}
else{
comandosD; <----- Esses comandos serão executados, se a todas as condições acima forem avaliadas Falsa.
}
} <-------- Fechamento do Segundo else
} <-------- Fechamento do Terceiro else
  • Podemos encadear quantos if´s forem necessários (no exemplo acima apresentamos apenas 3).

Estrutura Condicional switch...case.

A estrutura switch...case representa de uma maneira mais simples o encadeamento de IF´s. É uma forma de reduzir a complexidade de vários if … else encadeados. O conteúdo da variável da cláusula switch é comparado com os valores constantes das cláusulas case, e caso uma das comparações seja verdadeira, o comando associado é executado (somente esse comando). Caso nenhuma comparação seja Verdadeira, a estrutura executará a cláusula default.

switch (variável)
{
case constante1:
comandosA;
break;
case constante2:
comandosB;
break;
default:
comandosC;
}

 Obs: Cada cláusula case na estrutura deverá finalizar com o comando break, pois é a forma de sair da estrutura switch, caso a condição seja Verdadeira.  

Exemplo

 Faça um programa que exiba o número contido na variável associada ao comando switch: No exemplo abaixo modifique o valor da variável resp para avaliar as outras situações.  

#include<stdio.h>
int main() {
int resp;
resp = 3;
switch (resp)
{
case 1:
printf("Voce selecionou a opcao %d", resp);
break;
case 2:
printf("Voce selecionou a opcao %d", resp);
break;
case 3:
printf("Voce selecionou a opcao %d", resp);
break;
default:
printf("Voce selecionou uma opcao deiferent de 1, 2 ou 3 --> %d", resp);
}
}

Exercício

Faça um programa em c que solicite dois operandos e o tipo de operação aritmética que desejar, conforme opções abaixo:

1 - Soma; 2 - Subtração; 3 - Multiplicação; 4 - Divisão; 5 - Exponenciação

Solução:

#include <stdio.h>
#include <stdlib.h>
#include<math.h>
int main()
{
int x, y, resultado;
int op;
x=0;
y=0;
resultado=0;
op=0;
printf(" \n Digite o valor do primeiro operando: ");
scanf("%d", &x);
printf(" \n Digite o valor do segundo operando: ");
scanf("%d", &y);
printf(" \n Escolha uma das opções abaixo: ");
printf(" \n 1. Soma ");
printf(" \n 2. Subtração ");
printf(" \n 3. Multiplicação ");
printf(" \n 4. Divisão ");
printf(" \n 5. Exponenciação ");
printf(" \n Digite o número da opção desejada: ");
scanf("%d", &op);
switch (op)
{
case 1:
printf(" \n Opção selecionada: 1. Soma ");
resultado = x + y;
printf(" \n A soma dos dois números é: %d ", resultado);
break;
case 2:
printf(" \n Opção selecionada: 2. Subtração ");
resultado = x - y;
printf(" \n A subtração dos dois números é: %d", resultado);
break;
case 3:
printf(" \n Opção selecionada: 3. Multiplicação ");
resultado = x * y;
printf(" \n A multiplicação dos dois números é: %d", resultado);
break;
case 4:
printf(" \n Opção selecionada: 4. Divisão ");
if(y=0)
{
printf(" \n Não existe divisão por zero ");
}
else
{
resultado = x / y;
printf(" \n A divisão dos dois números é: %d", resultado);
}
break;
case 5:
printf(" \n Opção selecionada: 5. Exponenciação ");
resultado = pow(x, y);
printf(" \n A exponenciação dos dois números é: %d", resultado);
break;
default:
printf(" \n Você digitou uma opção inválida!");
}
return 0;
}