300x250 AD TOP

Blogger news

AD (728x90)

Tecnologia do Blogger.

Colaboradores

Seguidores

Postagens populares

Tagged under:

Linguagem C - switch


  • A DECLARAÇÃO switch
Na declaração switch, a variável é sucessivamente testada contra uma lista de inteiros ou constantes caractere. Quando uma associação é encontrada, o conjunto de comandos associado com a constante é executado. As constantes não precisam sequer estar em qualquer ordem especial. A forma geral da declaração switch é:


switch (variável){
 case constante1:
 commandos; 
 break; 
 case constante2: 
commandos; 
 break; 
 .
 .
 .
 default 
 commandos; 
}
A declaração default é executada se nenhuma correspondência for encontrada. O default é opcional e, se ele não estiver presente, nenhuma ação será realizada se todas as correspondências falharem. Quando uma correspondência é encontrada, os comandos associados a case são executados até que o break seja encontrado ou até que se encontre o final do switch.
Exemplo:
#include <stdio.h>
 main()
{
 int opcao;
   int valor;
   printf ("Converter: \n");
   printf ("1: decimal para hexadecimal\n");
   printf ("2: hexadecimal para decimal\n");
   printf ("\nInforme sua opção: ");
   scanf ("%d", &opcao);
   switch (opcao)
   {
   case 1:
   printf ("\nInforme o valor em decimal: ");
   scanf ("%d", &valor);
   printf ("%d em hexadecimal e: %x", valor, valor);
   break;
   case 2:
   printf ("\nInforme o valor em hexadecimal: ");
   scanf ("%x", &valor);
   printf ("%x em decimal e: %d", valor, valor);
   break;
   default:
   printf ("\nOpção inválida. Tente outra vez.")
   }
}
Ainda que as declarações break sejam geralmente necessárias dentro de um switch,sintaticamente são opcionais. Elas são usadas para terminar a sequência de comandos associada a cada constante. Entretanto, se a declaração break é omitida, a execução continuará pela próxima declaração case até que um break ou o final do switch seja encontrado.
  • DECLARAÇÕES switch ANINHADAS
É possível ter um switch como parte da sequência de declaração de um switch externo. Mesmo que as constantes case do switch interno e externo contenham valores comuns, nenhum conflito surgirá. Por exemplo, o seguinte fragmento de código é perfeitamente aceitável.
Exemplo:
#include <stdio.h>
  #include <ctype.h>
void main()
{
char regiao, vendedor;
printf ("As regiões são: Leste, Oeste e Norte\n");
printf ("Informe a primeira letra da região: ");
regiao = getche();
regiao = toupper(regiao); //converte para maiúsculas
printf ("\n");
switch (regiao)
{
case 'L':
printf ("Vendedores são: Rafael, João e Maria \n");
printf ("Informe a primeira letra do vendedor: ");
vendedor = toupper(getche());
printf ("\n");
switch (vendedor)
{
case 'R':
printf ("Vendas: R$%d\n", 10000);
break;
case 'J':
printf ("Vendas: R$%d\n", 12000);
break;
case 'M':
printf ("Vendas: R$%d\n", 14000);
}
 break;
case 'O':
printf ("Vendedores são: Ronaldo, Lisa e Hilton\n");
printf ("Informe a primeira letra do vendedor: ");
vendedor = toupper(getche());
printf ("\n");
switch (vendedor)
{
case 'R':
printf ("Vendas: R$%d\n", 10000);
break;
case 'L':
printf ("Vendas: R$%d\n", 9500);
break;
case 'H':
printf ("Vendas: R$%d\n", 13000);
}
break;
case 'N':
printf ("Vendedores são: Tomás, João e Raquel\n");
printf ("Informe a primeira letra do vendedor: ");
vendedor = toupper(getche());
printf ("\n");
switch (vendedor)
{
case 'R':
printf ("Vendas: R$%d\n", 5000);
break;
case 'J':
printf ("Vendas: R$%d\n", 9000);
break;
case 'T':
printf ("Vendas: R$%d\n", 14000);
}
break;
}
}
Este programa solicita ao usuário a região e a letra inicial do nome do vendedor e, então, mostra o demonstrativo de vendas do mesmo. Switchs aninhados são requeridos uma vez que muitos vendedores têm a mesma letra inicial. Note que uma nova função, toupper( ), é introduzida. Ela retorna a letra maiúscula correspondente do seu argumento caractere. Ela é usada neste programa para permitir que o usuário insira informações tanto em letra maiúscula como em letra minúscula. A função complementar de toupper( ) é tolower( ), que converte caracteres maiúsculos em minúsculos. Ambas as funções estão contidas na biblioteca ctype.h.

Para dar continuidade aos posts sobre linguagem C, escolha um dos links abaixo:

“Mas vale ser cego dos olhos, do que do coração.”(Provérbio libanês)

1 comentários:

  1. Me ajudem por favor com essa programa em linguagem c.
    Um vendedor quer um programa que lhe ajuda calcular o montante que cliente deve pagar na compra de 6 maçãs com desconto de 10% por cada maçã e na compra de mais de 6 ate 12 sera descontado 20% por cada maçã e mais do que 12 sera descontado 30% em toda compra.

    ResponderExcluir