Switchcase

249 visualizações

Publicada em

0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
249
No SlideShare
0
A partir de incorporações
0
Número de incorporações
2
Ações
Compartilhamentos
0
Downloads
1
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Switchcase

  1. 1. www.tiexpert.net Pág. 1 de 3Switch e CaseUma outra forma de estrutura seletiva é o SWITCH. Dentro dos switch há o case (que significacaso). Ou seja, é quase que um if com várias possibilidades, mas com algumas diferençasimportantes.1a diferença: Os cases não aceitam operadores lógicos. Portanto, não é possível fazer umacomparaçã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 oprimeiro case e dentro do switch tiver 5 cases, o switch executará todos os outros 4 cases anã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 queserá avaliado pelo case. Então, abre-se o bloco de dados. Dentro do bloco de dados colocamoso comando CASE e logo após um valor terminando a linha com dois pontos (:). Preste atençãono tipo de dado que será colocado, pois há diferenças entre um dado e outro. Por exemplo: 1nã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 executadosBREAK;CASE valor2:Dados a serem executadosBREAK;}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?n1. 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. 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 continuariaexecutando até o final.DefaultDefault, do inglês padrão, é o case que é ativado caso não tenha achado nenhum casedefinido. 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 oprograma. Mas, propositalmente ou por engano, o usuário digita uma opção totalmentediferente. E agora? O que seu programa deve fazer? É aqui que o default entra. Geralmente odefault é quando é previsto um erro, uma entrada de dado incorreta ou não de acordo com ocontexto.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. 3. www.tiexpert.net Pág. 3 de 3Como podemos ver, há dois casos: S para reiniciar ou N para sair. Se por acaso alguém digitaralgo 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áriodigitar, 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

×