Dark Skyllen 7 #1 Postado 15 Março, 2010 Switch Quando precisamos fazer várias checagens, pode-se tornar complicado o uso de muitos ifs dentro do código, por isso usamos o comando switch, que simplifica tais checagens. Estrutura do comando: switch(variavel a ser checada) case valor1: comando case valor2: comando ... case valorX: comando default: comando Então entendendo: Vamos fazer dentro de um comando, várias checagens para verificar qual o valor da uma variável qualquer. CASO o valor seja 1, ele entra no primeiro bloco, se for 2, ele entra no segundo e assim por diante. SE NÃO FOR nenhuma das checagens ele entra no default. Lembrando que geralmente para sair do case, é necessário dar um break. Exemplo simples: #include <iostream.h> using namespace std; int main(int argc, char *argv[]) { int op = 1; switch(op) { case 1: cout << "1" << endl; break; case 2: cout << "2" << endl; break; default: cout << "Default" << endl; break; } system("PAUSE"); return EXIT_SUCCESS; } Usei o break para se a variável for 1, ele printa 1 e sai do case, sem fazer as outras verificações. Menu com switch Veremos como criar menus com switch: #include <iostream.h> using namespace std; int main(int argc, char *argv[]) { int op = 1; cout << "Menu: " << endl << "1 - Somar 2 números" << endl << "2 - Multiplicar 2 números" << endl << "3 - Subtrair 2 números" << endl << "4 - Dividir 2 números" << endl; cin >> op; int num1, num2; switch(op) { case 1: system("cls"); cin >> num1 >> num2; cout << num1+num2 << endl; break; case 2: system("cls"); cin >> num1 >> num2; cout << num1*num2 << endl; break; case 3: system("cls"); cin >> num1 >> num2; cout << num1-num2 << endl;; break; case 4: system("cls"); cin >> num1 >> num2; cout << num1/num2 << endl; break; default: cout << "Você teclou um menu diferente" << endl; break; } system("PAUSE"); return EXIT_SUCCESS; } Criamos um menu com o switch, se as opções forem de 1 à 4 ele entra nos cases respectivos, caso contrário entra no default. Por enquanto é só pessoal! Pratiquem e aguardem a próxima aula! Compartilhar este post Link para o post Compartilhar em outros sites
Dartier 0 #2 Postado 15 Março, 2010 nossa muito bom cara, to acompanhando suas aulas e parabéns pelo cargo merecido viu. Compartilhar este post Link para o post Compartilhar em outros sites
euzita 0 #3 Postado 15 Março, 2010 Obrigada Dark Skyllen Aguardo nova aula *-* Compartilhar este post Link para o post Compartilhar em outros sites
Lwkass 1 #4 Postado 15 Março, 2010 cara, so me ajuda numa duvida aqui sobre c++ oque seria isso ? using namespace std; Compartilhar este post Link para o post Compartilhar em outros sites
Dark Skyllen 7 #5 Postado 15 Março, 2010 (editado) #Lwkass É como se fosse um "import" pra usar algumas pequenas funções, como por exemplo o uso de strings. Você também pode criar seus próprios namespaces: #include <iostream.h> using namespace std; namespace exemplo{ int valor = 1; } int main() { cout << exemplo::valor; //escreve 1 system("pause"); return 0; } A mesma coisa seria pra std::cout, std::string, std::ceil e outros. Também podemos fazer o seguinte: #include <iostream> using namespace std; namespace exemplo{ int valor = 1; } using namespace exemplo; int main() { cout << valor; return 0; } Usando o namespace std poderemos declarar variáveis do tipo string, exemplo: #include <iostream> using namespace std; int main() { string nome = "Teste" // ou então std::string sem o namespace. cout << nome; return 0; } Deu pra entender? Editado 15 Março, 2010 por Piikachu Corrigir 1 pequeno erro :P Compartilhar este post Link para o post Compartilhar em outros sites
Lwkass 1 #6 Postado 15 Março, 2010 Hmm... entendi agora =D valeu ai ^^ Compartilhar este post Link para o post Compartilhar em outros sites
dragonlorde 0 #7 Postado 7 Abril, 2010 (editado) Boa cara Adorei o switch.. Continua com as aulas.. Editado 21 Abril, 2010 por dragonlorde Compartilhar este post Link para o post Compartilhar em outros sites
Caedo 0 #8 Postado 28 Junho, 2010 Realmente muito bom esse lance de conseguir por menus! Baseado na sua calculadora eu fiz a minha! XD So tem um problema, ela não retorna valores decimais. Como arrumo isso? #include <cstdlib> #include <iostream> using namespace std; int main(int argc, char *argv[]) { int operador; cout << "Escolha uma operacao a efetuar:\n[1] Adicao\n[2] Subtracao\n[3] Multiplicacao\n[4] Divisao\n\nOBS: Operacoes apenas com DOIS numeros!\n"; cin >> operador; switch(operador) { int numero1; int numero2; case 1: cout << "Voce escolheu ADICAO!\n\nDigite o primeiro numero: "; cin >> numero1; cout << "Digite o segundo numero: "; cin >> numero2; cout << numero1 << " + " << numero2 << " = " << numero1 + numero2 << "\n"; case 2: cout << "Voce escolheu SUBTRACAO!\n\nDigite o primeiro numero: "; cin >> numero1; cout << "Digite o segundo numero: "; cin >> numero2; cout << numero1 << " - " << numero2 << " = " << numero1 - numero2 << "\n"; case 3: cout << "Voce escolheu MULTIPLICACAO!\n\nDigite o primeiro numero: "; cin >> numero1; cout << "Digite o segundo numero: "; cin >> numero2; cout << numero1 << " * " << numero2 << " = " << numero1 * numero2 << "\n"; case 4: cout << "Voce escolheu DIVISAO!\n\nDigite o primeiro numero: "; cin >> numero1; cout << "Digite o segundo numero: "; cin >> numero2; cout << numero1 << " / " << numero2 << " = " << numero1 / numero2 << "\n"; default: cout << "Voce digitou um numero diferente dos que ha no menu!\n"; } system("PAUSE"); return EXIT_SUCCESS; } Compartilhar este post Link para o post Compartilhar em outros sites
Dark Skyllen 7 #9 Postado 29 Junho, 2010 @Ibald Declare as variáveis numero1 e numero2 como float, para que essas possam receber casas decimais, como 1.32 e etc. Compartilhar este post Link para o post Compartilhar em outros sites
BLackBode 0 #10 Postado 30 Novembro, 2010 outra otima aula, fiz uma calculadora também, mas com a opcao de sair.. usando for e switch.. [spoiler=exercicio]#include <cstdlib> #include <iostream> using namespace std; int main(int argc, char *argv[]) { std:: string sair; int opcao; for(float num1, num2 ; sair != "NAO" && sair != "Nao" && sair != "nao" ; ) // loop com variaveis num1 e num2 e condiçao sair { system("cls"); // limpa tela cout << "Menu: " << endl; cout << "1 --> SOMA" << endl; cout << "2 --> SUBTRACAO" << endl; cout << "3 --> MULTIPLICACAO" << endl; cout << "4 --> DIVISAO" << endl; cout << "Qual operacao deseja realizar? : "; cin >> opcao; // Entrada de dados (opcao) system("cls"); switch(opcao) // switch opcao { case 1: // caso soma cout << "Primeiro numero: "; cin >> num1; cout << endl << "Segundo numero: "; cin >> num2; system("cls"); cout << num1 << " + " << num2 << " = " << num1+num2 << endl; break; case 2: //caso subtracao cout << "Primeiro numero: "; cin >> num1; cout << endl << "Segundo numero: "; cin >> num2; system("cls"); cout << num1 << " - " << num2 << " = " << num1-num2 << endl; break; case 3: // caso multiplicacao cout << "Primeiro numero: "; cin >> num1; cout << endl << "Segundo numero: "; cin >> num2; system("cls"); cout << num1 << " X " << num2 << " = " << num1*num2 << endl; break; case 4: // caso divisao cout << "Primeiro numero: "; cin >> num1; cout << endl << "Segundo numero: "; cin >> num2; system("cls"); cout << num1 << " / " << num2 << " = " << num1/num2 << endl; break; default: // caso opcao invalida cout << "Opcao invalida\n" << endl; } cout << "Deseja realizar outra operacao? (SIM/NAO) : "; cin >> sair; // entrada de dados (sair) } return EXIT_SUCCESS; } Compartilhar este post Link para o post Compartilhar em outros sites