SlideShare ist ein Scribd-Unternehmen logo
1 von 3
Downloaden Sie, um offline zu lesen
www.tiexpert.net                                                             Pág. 1 de 3

Switch e Case
Uma outra forma de estrutura seletiva é o SWITCH. Dentro dos switch há o case (que significa
caso). Ou seja, é quase que um if com várias possibilidades, mas com algumas diferenças
importantes.
1a diferença: Os cases não aceitam operadores lógicos. Portanto, não é possível fazer uma
comparação. Isso limita o case a apenas valores definidos.
2a diferença: O switch executa seu bloco em cascata. Ou seja, se a variável indicar para o
primeiro case e dentro do switch tiver 5 cases, o switch executará todos os outros 4 cases a
não ser que utilizemos o comando para sair do switch. (Nos referimos ao BREAK).
Agora, que conhecemos diferenças importantes, vamos ver como proceder com o switch /
case.
Primeiro o comando SWITCH e entre parênteses a váriavel na qual está guardado o valor que
será avaliado pelo case. Então, abre-se o bloco de dados. Dentro do bloco de dados colocamos
o comando CASE e logo após um valor terminando a linha com dois pontos (:). Preste atenção
no tipo de dado que será colocado, pois há diferenças entre um dado e outro. Por exemplo: 1
não é a mesma coisa que '1' e 'a' não é a mesma coisa que 'A'...
Então, é estruturado os comando que serão executados pelo case.
Estruturadamente, seria isso:
SWITCH (variável){
CASE valor1:
Dados a serem executados
BREAK;
CASE valor2:
Dados a serem executados
BREAK;
}
Vejamos o exemplo abaixo:
#include <iostream>
#include <cstdlib>
using namespace std;

int main (void){
    int a, b, c, operacao;
    cout <<"Digite o 1o valor: ";
    cin >> a;
    cin.ignore ();
    cout <<"Digite o 2o valor: ";
    cin >> b;
    cin.ignore ();
    cout <<"Que operacao deseja realizar?n
1. Adicaot2.Subtracaot3.Multiplicacaot4.Divisaonn=>";
    cin >> operacao;
    cin.ignore ();
    system ("cls");
    switch (operacao){
        case 1:
            c=a+b;
            cout <<a<<" + "<<b<<" = "<<c<<"nn";
            break;
        case 2:
            c=a-b;
            cout <<a<<" - "<<b<<" = "<<c<<"nn";
            break;


http://www.tiexpert.net/programacao/c/switch-case-default.php
www.tiexpert.net                                                           Pág. 2 de 3
          case 3:
              c=a*b;
              cout <<a<<" * "<<b<<" = "<<c<<"nn";
              break;
          case 4:
              c=a/b;
              cout <<a<<" / "<<b<<" = "<<c<<"nn";
              break;
     }
     system ("pause");
     return EXIT_SUCCESS;
}
Perceba que no final de cada case há um break. Porque se não houvesse, o switch continuaria
executando até o final.

Default
Default, do inglês padrão, é o case que é ativado caso não tenha achado nenhum case
definido. Ou seja, é o que aconteceria em último caso. Vamos imaginar o seguinte cenário:
Seu programa pede para que o usuário digite apenas duas opções (S ou N) para reiniciar o
programa. Mas, propositalmente ou por engano, o usuário digita uma opção totalmente
diferente. E agora? O que seu programa deve fazer? É aqui que o default entra. Geralmente o
default é quando é previsto um erro, uma entrada de dado incorreta ou não de acordo com o
contexto.
Usando o próprio cenário acima, segue o código.
#include <iostream>
#include <cstdlib>
#include <ctype.h>
using namespace std;

int reiniciar (void);

int main (void){
    reiniciar ();
}

int reiniciar (void){
    char opcao;
    cout <<"Deseja reiniciar o programa? [S/N]n";
    cin >> opcao;
    opcao=toupper(opcao); // deixa a letra maiúscula
    switch (opcao){
        case 'S': //Entre aspas simples porque é um caracter
             system ("cls");
             main ();
        case 'N': //Entre aspas simples porque é um caracter
             return EXIT_SUCCESS;
        default:
            cout <<"aOpcao invalida!nn";
            reiniciar ();
    }
}




http://www.tiexpert.net/programacao/c/switch-case-default.php
www.tiexpert.net                                                                             Pág. 3 de 3
Como podemos ver, há dois casos: S para reiniciar ou N para sair. Se por acaso alguém digitar
algo diferente disso, executa-se o default. Como a linguagem C/C++ é case sensitive
(diferencia maiúsculas de minúsculas) usamos uma função para deixar a letra maiúscula
(toupper da biblioteca ctype - que veremos mais adiante). Agora, não importa o que o usuário
digitar, pois o programa está preparado para reagir à qualquer entrada de dado.

                                                                                 Autor: Denys William Xavier
                                                           Este artigo está sob Licença Creative Commons
         Para ver uma cópia desta licença, visite http://creativecommons.org/licenses/by-nc-sa/2.5/br/
   ou envie uma carta para Creative Commons, 171 Second Street, Suite 300, San Francisco, California 94105, USA.




http://www.tiexpert.net/programacao/c/switch-case-default.php

Weitere ähnliche Inhalte

Was ist angesagt?

Estruturas de controle if/else switch PHP
Estruturas de controle if/else switch PHPEstruturas de controle if/else switch PHP
Estruturas de controle if/else switch PHPSedu
 
Javascript - boas práticas
Javascript - boas práticasJavascript - boas práticas
Javascript - boas práticasFrancke Peixoto
 
Sistemas Distribuídos e PHP - Darkmira Tour BR 2016
Sistemas Distribuídos e PHP - Darkmira Tour BR 2016Sistemas Distribuídos e PHP - Darkmira Tour BR 2016
Sistemas Distribuídos e PHP - Darkmira Tour BR 2016Diana Ungaro Arnos
 
O caso default e necessário na estrutura de seleção switch
O caso default e necessário na estrutura de seleção switchO caso default e necessário na estrutura de seleção switch
O caso default e necessário na estrutura de seleção switchnellsoney
 
4º Aula do Grupo de estudos sobre funções
4º Aula do Grupo de estudos sobre funções4º Aula do Grupo de estudos sobre funções
4º Aula do Grupo de estudos sobre funçõesFellyph Cintra
 
Programação reativa com RxJS e Angular
Programação reativa com RxJS e AngularProgramação reativa com RxJS e Angular
Programação reativa com RxJS e AngularWendel Nascimento
 
Algoritimos. Comamandos de condição e repetição
Algoritimos. Comamandos de condição e repetiçãoAlgoritimos. Comamandos de condição e repetição
Algoritimos. Comamandos de condição e repetiçãoEderson Marques
 
Introdução PLSQL
Introdução PLSQLIntrodução PLSQL
Introdução PLSQLIsmael
 
Tratamento de exceções com PHP
Tratamento de exceções com PHPTratamento de exceções com PHP
Tratamento de exceções com PHPLeonardo Soares
 
Java orientação a objetos (interfaces)
Java   orientação a objetos (interfaces)Java   orientação a objetos (interfaces)
Java orientação a objetos (interfaces)Armando Daniel
 
Princípios de projeto e boas práticas de programação em Java - Márcio Torres
Princípios de projeto e boas práticas de programação em Java - Márcio TorresPrincípios de projeto e boas práticas de programação em Java - Márcio Torres
Princípios de projeto e boas práticas de programação em Java - Márcio TorresTchelinux
 
Shell Scripting
Shell ScriptingShell Scripting
Shell Scriptingdcarneir
 
Programacao funcional dojo
Programacao funcional dojoProgramacao funcional dojo
Programacao funcional dojoFrancieli Viane
 
Desenvolvimento de web sites com php
Desenvolvimento de web sites com phpDesenvolvimento de web sites com php
Desenvolvimento de web sites com phpbrenod123
 

Was ist angesagt? (20)

Comandos de controle de fluxo do php
Comandos de controle de fluxo do phpComandos de controle de fluxo do php
Comandos de controle de fluxo do php
 
Estruturas de controle if/else switch PHP
Estruturas de controle if/else switch PHPEstruturas de controle if/else switch PHP
Estruturas de controle if/else switch PHP
 
Javascript - boas práticas
Javascript - boas práticasJavascript - boas práticas
Javascript - boas práticas
 
Event-based Asynchronous Pattern (EAP)
Event-based Asynchronous Pattern (EAP)Event-based Asynchronous Pattern (EAP)
Event-based Asynchronous Pattern (EAP)
 
Sistemas Distribuídos e PHP - Darkmira Tour BR 2016
Sistemas Distribuídos e PHP - Darkmira Tour BR 2016Sistemas Distribuídos e PHP - Darkmira Tour BR 2016
Sistemas Distribuídos e PHP - Darkmira Tour BR 2016
 
O caso default e necessário na estrutura de seleção switch
O caso default e necessário na estrutura de seleção switchO caso default e necessário na estrutura de seleção switch
O caso default e necessário na estrutura de seleção switch
 
Aula03 - JavaScript
Aula03 - JavaScriptAula03 - JavaScript
Aula03 - JavaScript
 
4º Aula do Grupo de estudos sobre funções
4º Aula do Grupo de estudos sobre funções4º Aula do Grupo de estudos sobre funções
4º Aula do Grupo de estudos sobre funções
 
Apostila c
Apostila cApostila c
Apostila c
 
Programação reativa com RxJS e Angular
Programação reativa com RxJS e AngularProgramação reativa com RxJS e Angular
Programação reativa com RxJS e Angular
 
Império JavaScript
Império JavaScriptImpério JavaScript
Império JavaScript
 
Algoritimos. Comamandos de condição e repetição
Algoritimos. Comamandos de condição e repetiçãoAlgoritimos. Comamandos de condição e repetição
Algoritimos. Comamandos de condição e repetição
 
C# switch case
C#  switch caseC#  switch case
C# switch case
 
Introdução PLSQL
Introdução PLSQLIntrodução PLSQL
Introdução PLSQL
 
Tratamento de exceções com PHP
Tratamento de exceções com PHPTratamento de exceções com PHP
Tratamento de exceções com PHP
 
Java orientação a objetos (interfaces)
Java   orientação a objetos (interfaces)Java   orientação a objetos (interfaces)
Java orientação a objetos (interfaces)
 
Princípios de projeto e boas práticas de programação em Java - Márcio Torres
Princípios de projeto e boas práticas de programação em Java - Márcio TorresPrincípios de projeto e boas práticas de programação em Java - Márcio Torres
Princípios de projeto e boas práticas de programação em Java - Márcio Torres
 
Shell Scripting
Shell ScriptingShell Scripting
Shell Scripting
 
Programacao funcional dojo
Programacao funcional dojoProgramacao funcional dojo
Programacao funcional dojo
 
Desenvolvimento de web sites com php
Desenvolvimento de web sites com phpDesenvolvimento de web sites com php
Desenvolvimento de web sites com php
 

Ähnlich wie Switch e Case em C/C

DOJO - TDD com C++
DOJO - TDD com C++DOJO - TDD com C++
DOJO - TDD com C++thiagodp
 
TDD em C++
TDD em C++TDD em C++
TDD em C++thiagodp
 
Curso de ShellScript - Lm10 shellscript10
Curso de ShellScript - Lm10 shellscript10Curso de ShellScript - Lm10 shellscript10
Curso de ShellScript - Lm10 shellscript10Pessoal
 
Algoritmos C/C++ - Aula 01
Algoritmos C/C++ - Aula 01Algoritmos C/C++ - Aula 01
Algoritmos C/C++ - Aula 01Leandro Rezende
 
Apostila C++ básico - Apostilando.com
Apostila C++ básico - Apostilando.comApostila C++ básico - Apostilando.com
Apostila C++ básico - Apostilando.comKratos879
 
Shell Script - Aula 02
Shell Script - Aula 02Shell Script - Aula 02
Shell Script - Aula 02Olival Paulino
 
Mudança de runlevels e desligamento do sistema
Mudança de runlevels e desligamento do sistemaMudança de runlevels e desligamento do sistema
Mudança de runlevels e desligamento do sistemaSoftD Abreu
 
Apostila de sql oracle (pt br)
Apostila de sql   oracle (pt br)Apostila de sql   oracle (pt br)
Apostila de sql oracle (pt br)Sandro Freitas
 
Introdução a Linguagem C
Introdução a Linguagem CIntrodução a Linguagem C
Introdução a Linguagem Capolllorj
 
Apresentação curso pic básico fbs eletrônica
Apresentação   curso pic básico fbs eletrônicaApresentação   curso pic básico fbs eletrônica
Apresentação curso pic básico fbs eletrônicaFabio Souza
 
TDC2013 Otimizando-C
TDC2013 Otimizando-CTDC2013 Otimizando-C
TDC2013 Otimizando-Cosmarcf
 
Controle de Fluxo, Exceções, Assertivas
Controle de Fluxo, Exceções, AssertivasControle de Fluxo, Exceções, Assertivas
Controle de Fluxo, Exceções, AssertivasElenilson Vieira
 
Async/Await Pattern in C#
Async/Await Pattern in C#Async/Await Pattern in C#
Async/Await Pattern in C#Leandro Silva
 

Ähnlich wie Switch e Case em C/C (20)

DOJO - TDD com C++
DOJO - TDD com C++DOJO - TDD com C++
DOJO - TDD com C++
 
TDD em C++
TDD em C++TDD em C++
TDD em C++
 
Curso de ShellScript - Lm10 shellscript10
Curso de ShellScript - Lm10 shellscript10Curso de ShellScript - Lm10 shellscript10
Curso de ShellScript - Lm10 shellscript10
 
Algoritmos C/C++ - Aula 01
Algoritmos C/C++ - Aula 01Algoritmos C/C++ - Aula 01
Algoritmos C/C++ - Aula 01
 
Apostila C++ básico - Apostilando.com
Apostila C++ básico - Apostilando.comApostila C++ básico - Apostilando.com
Apostila C++ básico - Apostilando.com
 
Parte1c
Parte1cParte1c
Parte1c
 
Aula1
Aula1Aula1
Aula1
 
Shell Script - Aula 02
Shell Script - Aula 02Shell Script - Aula 02
Shell Script - Aula 02
 
Mudança de runlevels e desligamento do sistema
Mudança de runlevels e desligamento do sistemaMudança de runlevels e desligamento do sistema
Mudança de runlevels e desligamento do sistema
 
Aula3
Aula3Aula3
Aula3
 
Apostila de sql oracle (pt br)
Apostila de sql   oracle (pt br)Apostila de sql   oracle (pt br)
Apostila de sql oracle (pt br)
 
Java3
Java3Java3
Java3
 
Introdução a Linguagem C
Introdução a Linguagem CIntrodução a Linguagem C
Introdução a Linguagem C
 
Apresentação curso pic básico fbs eletrônica
Apresentação   curso pic básico fbs eletrônicaApresentação   curso pic básico fbs eletrônica
Apresentação curso pic básico fbs eletrônica
 
Banco de Dados 2: Controle de Concorrência
Banco de Dados 2: Controle de ConcorrênciaBanco de Dados 2: Controle de Concorrência
Banco de Dados 2: Controle de Concorrência
 
TDC2013 Otimizando-C
TDC2013 Otimizando-CTDC2013 Otimizando-C
TDC2013 Otimizando-C
 
Controle de Fluxo, Exceções, Assertivas
Controle de Fluxo, Exceções, AssertivasControle de Fluxo, Exceções, Assertivas
Controle de Fluxo, Exceções, Assertivas
 
Apostila de sql
Apostila de sqlApostila de sql
Apostila de sql
 
Aula javascript
Aula  javascriptAula  javascript
Aula javascript
 
Async/Await Pattern in C#
Async/Await Pattern in C#Async/Await Pattern in C#
Async/Await Pattern in C#
 

Mehr von EvelyneBorges

Adm 02 - perfil, habilidades,papéis e classificação dos administradores
Adm    02 - perfil, habilidades,papéis e classificação dos administradoresAdm    02 - perfil, habilidades,papéis e classificação dos administradores
Adm 02 - perfil, habilidades,papéis e classificação dos administradoresEvelyneBorges
 
Adm 01 -o que é administração -
Adm   01 -o que é administração -Adm   01 -o que é administração -
Adm 01 -o que é administração -EvelyneBorges
 
Ucb matriz curricular de sistemas da informacao - bacharel
Ucb   matriz curricular de sistemas da informacao - bacharelUcb   matriz curricular de sistemas da informacao - bacharel
Ucb matriz curricular de sistemas da informacao - bacharelEvelyneBorges
 
Facitec matriz curricular de sistemas da informacao - bacharel
Facitec   matriz curricular de sistemas da informacao - bacharelFacitec   matriz curricular de sistemas da informacao - bacharel
Facitec matriz curricular de sistemas da informacao - bacharelEvelyneBorges
 
Upis matriz curricular de sistemas da inormacao - bacharel
Upis   matriz curricular de sistemas da inormacao - bacharelUpis   matriz curricular de sistemas da inormacao - bacharel
Upis matriz curricular de sistemas da inormacao - bacharelEvelyneBorges
 
Matematica financeira
Matematica financeiraMatematica financeira
Matematica financeiraEvelyneBorges
 
Lista de exercício 1
Lista de exercício 1Lista de exercício 1
Lista de exercício 1EvelyneBorges
 

Mehr von EvelyneBorges (20)

Prova
ProvaProva
Prova
 
Juroscompostos
JuroscompostosJuroscompostos
Juroscompostos
 
Adm 02 - perfil, habilidades,papéis e classificação dos administradores
Adm    02 - perfil, habilidades,papéis e classificação dos administradoresAdm    02 - perfil, habilidades,papéis e classificação dos administradores
Adm 02 - perfil, habilidades,papéis e classificação dos administradores
 
Adm 01 -o que é administração -
Adm   01 -o que é administração -Adm   01 -o que é administração -
Adm 01 -o que é administração -
 
Ucb matriz curricular de sistemas da informacao - bacharel
Ucb   matriz curricular de sistemas da informacao - bacharelUcb   matriz curricular de sistemas da informacao - bacharel
Ucb matriz curricular de sistemas da informacao - bacharel
 
Facitec matriz curricular de sistemas da informacao - bacharel
Facitec   matriz curricular de sistemas da informacao - bacharelFacitec   matriz curricular de sistemas da informacao - bacharel
Facitec matriz curricular de sistemas da informacao - bacharel
 
Upis matriz curricular de sistemas da inormacao - bacharel
Upis   matriz curricular de sistemas da inormacao - bacharelUpis   matriz curricular de sistemas da inormacao - bacharel
Upis matriz curricular de sistemas da inormacao - bacharel
 
Exercícios lista 2
Exercícios   lista 2Exercícios   lista 2
Exercícios lista 2
 
Exerc f.financeira
Exerc f.financeiraExerc f.financeira
Exerc f.financeira
 
Matematica financeira
Matematica financeiraMatematica financeira
Matematica financeira
 
Exercícios lista 1
Exercícios   lista 1Exercícios   lista 1
Exercícios lista 1
 
Aula 4
Aula 4Aula 4
Aula 4
 
Aula 2
Aula 2Aula 2
Aula 2
 
Aula 1
Aula 1Aula 1
Aula 1
 
Função financeira
Função financeiraFunção financeira
Função financeira
 
Modulo iv
Modulo ivModulo iv
Modulo iv
 
Modulo iii
Modulo iiiModulo iii
Modulo iii
 
Modulo ii
Modulo iiModulo ii
Modulo ii
 
Modulo i
Modulo iModulo i
Modulo i
 
Lista de exercício 1
Lista de exercício 1Lista de exercício 1
Lista de exercício 1
 

Switch e Case em C/C

  • 1. www.tiexpert.net Pág. 1 de 3 Switch e Case Uma outra forma de estrutura seletiva é o SWITCH. Dentro dos switch há o case (que significa caso). Ou seja, é quase que um if com várias possibilidades, mas com algumas diferenças importantes. 1a diferença: Os cases não aceitam operadores lógicos. Portanto, não é possível fazer uma comparação. Isso limita o case a apenas valores definidos. 2a diferença: O switch executa seu bloco em cascata. Ou seja, se a variável indicar para o primeiro case e dentro do switch tiver 5 cases, o switch executará todos os outros 4 cases a não ser que utilizemos o comando para sair do switch. (Nos referimos ao BREAK). Agora, que conhecemos diferenças importantes, vamos ver como proceder com o switch / case. Primeiro o comando SWITCH e entre parênteses a váriavel na qual está guardado o valor que será avaliado pelo case. Então, abre-se o bloco de dados. Dentro do bloco de dados colocamos o comando CASE e logo após um valor terminando a linha com dois pontos (:). Preste atenção no tipo de dado que será colocado, pois há diferenças entre um dado e outro. Por exemplo: 1 não é a mesma coisa que '1' e 'a' não é a mesma coisa que 'A'... Então, é estruturado os comando que serão executados pelo case. Estruturadamente, seria isso: SWITCH (variável){ CASE valor1: Dados a serem executados BREAK; CASE valor2: Dados a serem executados BREAK; } Vejamos o exemplo abaixo: #include <iostream> #include <cstdlib> using namespace std; int main (void){ int a, b, c, operacao; cout <<"Digite o 1o valor: "; cin >> a; cin.ignore (); cout <<"Digite o 2o valor: "; cin >> b; cin.ignore (); cout <<"Que operacao deseja realizar?n 1. Adicaot2.Subtracaot3.Multiplicacaot4.Divisaonn=>"; cin >> operacao; cin.ignore (); system ("cls"); switch (operacao){ case 1: c=a+b; cout <<a<<" + "<<b<<" = "<<c<<"nn"; break; case 2: c=a-b; cout <<a<<" - "<<b<<" = "<<c<<"nn"; break; http://www.tiexpert.net/programacao/c/switch-case-default.php
  • 2. www.tiexpert.net Pág. 2 de 3 case 3: c=a*b; cout <<a<<" * "<<b<<" = "<<c<<"nn"; break; case 4: c=a/b; cout <<a<<" / "<<b<<" = "<<c<<"nn"; break; } system ("pause"); return EXIT_SUCCESS; } Perceba que no final de cada case há um break. Porque se não houvesse, o switch continuaria executando até o final. Default Default, do inglês padrão, é o case que é ativado caso não tenha achado nenhum case definido. Ou seja, é o que aconteceria em último caso. Vamos imaginar o seguinte cenário: Seu programa pede para que o usuário digite apenas duas opções (S ou N) para reiniciar o programa. Mas, propositalmente ou por engano, o usuário digita uma opção totalmente diferente. E agora? O que seu programa deve fazer? É aqui que o default entra. Geralmente o default é quando é previsto um erro, uma entrada de dado incorreta ou não de acordo com o contexto. Usando o próprio cenário acima, segue o código. #include <iostream> #include <cstdlib> #include <ctype.h> using namespace std; int reiniciar (void); int main (void){ reiniciar (); } int reiniciar (void){ char opcao; cout <<"Deseja reiniciar o programa? [S/N]n"; cin >> opcao; opcao=toupper(opcao); // deixa a letra maiúscula switch (opcao){ case 'S': //Entre aspas simples porque é um caracter system ("cls"); main (); case 'N': //Entre aspas simples porque é um caracter return EXIT_SUCCESS; default: cout <<"aOpcao invalida!nn"; reiniciar (); } } http://www.tiexpert.net/programacao/c/switch-case-default.php
  • 3. www.tiexpert.net Pág. 3 de 3 Como podemos ver, há dois casos: S para reiniciar ou N para sair. Se por acaso alguém digitar algo diferente disso, executa-se o default. Como a linguagem C/C++ é case sensitive (diferencia maiúsculas de minúsculas) usamos uma função para deixar a letra maiúscula (toupper da biblioteca ctype - que veremos mais adiante). Agora, não importa o que o usuário digitar, pois o programa está preparado para reagir à qualquer entrada de dado. Autor: Denys William Xavier Este artigo está sob Licença Creative Commons Para ver uma cópia desta licença, visite http://creativecommons.org/licenses/by-nc-sa/2.5/br/ ou envie uma carta para Creative Commons, 171 Second Street, Suite 300, San Francisco, California 94105, USA. http://www.tiexpert.net/programacao/c/switch-case-default.php