Linux slogan
Visite também: Segurança Linux · BR-Linux.org · Dicas-L · Doode · NoticiasLinux · SoftwareLivre.org · UnderLinux



» Screenshot
Linux: Scren
Por DexInfo
» Login
Login:
Senha:

Se você ainda não possui uma conta, clique aqui.

Esqueci minha senha


Dica

Switch em C, e se a opção for inválida?
Linux user
Publicado por André em 20/07/2010

Login: andrezc, 1164234 pontos
[ Hits: 2709 ]

Switch em C, e se a opção for inválida?

Uma curiosidade de muitos iniciantes em programação é sobre o switch, especificadamente quando se fala em criar menus. Algo como:

switch (variavel) {
    case 1:
        //Conteúdo do item 1 do menu
    break;

    case 2:
        //Conteúdo do item 2 do menu
    break;

    case 3:
        //Conteúdo do item 3 do menu
    break;
}

O que muitos se perguntam é que se, por exemplo, o usuário do programa digitasse 4, sendo que apenas temos 3 opções. O que iria acontecer é que o programa, como não tem nenhuma rotina para o case 4, ou melhor, o case 4 nem existe e portanto como não há o que fazer, ele iria parar a sua execução, como um getchar(). Vamos usar o default!

Vou mostrar algo bem interessante, neste caso quando digitassem 4 ou qualquer outro número considerado "inválido", nosso programa exibiria uma mensagem dizendo que a opção é inválida e voltaria ao início.

#include <stdio.h>

int main()
{
    int opcao;

    printf("Selecione uma opcao: \n\n[1] Opcao 1 \n[2] Opcao 2 \n >> ");
    scanf("%d",&opcao);

    switch(opcao) {
        case 1:
            printf("Voce escolheu a opcao 1 \n\n");
        break;

        case 2:
            printf("Voce escolheu a opcao 2 \n\n");
        break;

        default :
            printf("Opcao invalida! \n\n");
            return main();

    }

    return (0);
}

Até mais...


Outras dicas deste autor

Leitura recomendada
   Dica Linux recomendada Declaração de variáveis em C
   Dica Linux recomendada Site para quem está iniciando em C
   Dica Linux recomendada Mais um curso de linguagem C
   Dica Linux recomendada stty: alternativa para echo e noecho
   Dica Linux recomendada Compilando no Code::Blocks

Comentários
[1] Comentário enviado por davimendes em 28/09/2011 - 11:02h:

Vlw!!! Joguei uma idéia fora no meu trabalho de alg por não saber como se fazia isso!!! (estava com preguiça de trocar o switch por if encadeado...)


Contribuir com comentário


  
Para executar esta ação você precisa estar logado no site, caso contrário, tudo o que for digitado será perdido.
Responsável pelo site: Fábio Berbert de Paula - Conteúdo distribuído sob licença GNU FDL
Site hospedado por:

Viva o Linux

A maior comunidade Linux da América Latina! Artigos, dicas, tutoriais, fórum, scripts e muito mais. Ideal para quem busca auto-ajuda em Linux.