Aprenda C++

  • Página Inicial
  • Contato!
  • Tudo sobre C++ Parte 1!
  • Tudo sobre C++ Parte 2!
  • Tudo sobre C++ Parte 3!
  • Tudo sobre C++ Parte 4!
  • Tudo sobre C++ Parte 5!
  • Tudo sobre C++ Parte 6!
  • Tudo sobre C++ Parte 7!
  • Tudo sobre C++ Parte 8!
  • Tudo sobre C++ Parte 9!
  • Tudo sobre C++ Parte 10!
  • Tudo sobre C++ Parte 11!
  • Tudo sobre C++ Parte 12!
  • Tudo sobre C++ Parte 13!
  • Tudo sobre C++ Parte 14!
  • Tudo sobre C++ Parte 15!
  • Tudo sobre C++ Parte 16!
  • Tudo sobre C++ Parte 3

    Comando de Decisão If e Else

    Os comando de decisão if e else é usado em casos que precisamos fazer uma comparação entre valores, para definir as funções executadas pelo programa.

    O condicional simples é feito apenas com a declaração if (significando "se") é usado para especificar um bloco de código que deverá ser executado, ao retornar true.

    Veja um exemplo de uso:

    
    int num1 = 8;
    
    if(num1 > 10) {
        cout << "O valor é maior que 10" << "\n";
    }
    
    

    O condicional composto é feito com o if junto com o else (significando "senão"). O else se usa para executar um segundo bloco de código ao retornar false.

    Veja um exemplo:

    
    int num1 = 100;
    int num2 = 50;
    
    if(num1 < num2) {
        cout << "O valor de " << num1 << " é menor que " << num2 << "\n";
    }
    else {
        cout << "O valor de " << num1 << " é maior que " << num2 << "\n";
    }
    
    

    Existe ainda o condicional composto alinhando, que entre o if e o else tem o else if. O else if executa um segundo código ao if retornar false, antes de executar o else.

    Veja um exemplo, baseado no anterior:

    
    int num1 = 100;
    int num2 = 50;
    
    if(num1 < num2) {
        cout << "O valor de " << num1 << " é menor que " << num2 << "\n";
    }
    else if(num1 > num2) {
        cout << "O valor de " << num1 << " é maior que " << num2 << ".\n";
    }
    else {
        cout << "Os valores " << num1 << " e " << num2 << " são iguais.\n";
    }
    
    

    PS: Em qualquer linguagem que tenha if, se colocar variáveis que recebam valores true e false (1 e 0 no C++), elas podem ser colocadas diretamente nos parênteses do if (apesar da maioria colocarem a comparação da variável com true), assim:

    
    int sol = 1;
    
    if(sol) {
        cout << "Vou ao clube!";
    }
    else {
        cout << "Vou ao cinema!";
    }
    
    

    Comando de Decisão If e Else e Comando Goto

    Como visto anteriormente, essa é uma estrutura simples com if e else no C++:

    
    int n1, n2, res;
    
    cout << "Digite a primeira nota: ";
    cin >> n1;
    
    cout << "Digite a segunda nota: ";
    cin >> n2;
    
    res = (n1 + n2) / 2;
    
    if(res >= 6) {
        cout << "\nAprovado!\n";
    }
    else {
        cout << "\nReprovado\n";
    } 
    
    

    E vimos também que existe o else if, como no exemplo abaixo:

    
    int n1, n2, res;
    
    cout << "Digite a primeira nota: ";
    cin >> n1;
    
    cout << "Digite a segunda nota: ";
    cin >> n2;
    
    res = (n1 + n2) / 2;
    
    if(res >= 6) {
        cout << "\nAprovado!\n";
    }
    else if(res >= 4 && res < 6) {
        cout << "\nRecuperação\n";
    }
    else {
        cout << "\nReprovado\n";
    } 
    
    

    Já o comando goto (vai para) que direciona o ponteiro de execução do nosso programa, quando ele encontra o goto, ele vai até o label indicado em qualquer ponto do programa (criado apenas com o nome e dois pontos), e o goto apenas usará o nome do label que indicará.

    Veja um exemplo do uso do goto:

    
    int n1, n2, res;
    char opc; // Variável usada no label.
    
    inicio: // Label, indicado com dois pontos.
    
    system("cls"); // Adicione cstdlib ou stdlib.h, são os comandos do terminal do sistema operacional à ser compilado.
    
    cout << "Digite a primeira nota: ";
    cin >> n1;
    
    cout << "Digite a segunda nota: ";
    cin >> n2;
    
    res = (n1 + n2) / 2;
    
    if(res >= 6) {
        cout << "\nAprovado!\n";
    }
    else if(res >= 4 && res < 6) {
        cout << "\nRecuperação\n";
    }
    else {
        cout << "\nReprovado\n";
    }
    
    cout << "\nDeseja Digitar Outras Notas? [S/N]: ";
    cin >> opc;
    
    if((char)toupper(opc) == 'S') { // Inclua cctype pro toupper
        goto inicio; // Indicação do Label.
    }
    
    

    PS: pode notar que adicionamos um system("cls") para limpar a tela, mas o system necessita da biblioteca cstdlib para funcionar. Isso são os comandos do sistema operacional pro qual o programa será compilado (só lembrando que se usar o Linux, devemos usar "clear"). Note também que usamos o método toupper() para transformar a letra em maiúscula, e fazemos o mesmo com tolower() para transformar em minúscula (lembrando que em ambos os caso usamos o typecast de char e incluímos a biblioteca cctype).

    Comando de Decisão Switch e Case

    A declaração condicional switch (chaveamento) é usada quando é preciso realizar diferentes ações baseadas em distintas condições. Pra simplificar o código, geralmente se usa no lugar de um condicional alinhado.

    O case é o valor comparado com a expressão, se corresponder, o código associado será executado. O break garante que a estrutura seja finaliza ao encontrar uma correspondência. E o default é o bloco de códigos que será executado se nenhum caso corresponder à expressão.

    Veja que depois do case e do default, nesse caso, se usa dois pontos :, e que ele diferencia minúsculas e maiúsculas.

    Veja um exemplo de uso:

    
    int val;
    
    cout << "Selecione uma cor:\n";
    cout << "1 - Verde\n2 - Azul\n3 - Vermelho\n\n";
    cin >> val;
    
    switch(val) {
        case 1:
            cout << "Cor selecionada: Verde\n";
            break;
        case 2:
            cout << "Cor selecionada: Azul\n";
            break;
        case 3:
            cout << "Cor selecionada: Vermelho\n";
            break;
        default:
            cout << "Valor inválido\n";
            break;
    }
    
    

    Veja outro exemplo, com vários cases:

    
    int val;
    
    cout << "Selecione uma cor:\n";
    cout << "1 a 3- Verde\n4 a 6 - Azul\n\n";
    cin >> val;
    
    switch(val) {
        case 1:
        case 2:
        case 3:
            cout << "Cor selecionada: Verde\n";
            break;
        case 4:
        case 5:
        case 6:
            cout << "Cor selecionada: Azul\n";
            break;
        default:
            cout << "Valor inválido\n";
            break;
    }
    
    

    Também podemos usar switchs aninhados, por exemplo:

    
    int val;
    
    cout << "Selecione um transporte:\n";
    cout << "1 - Carro\n2 - Moto\n3 - Avião\n4 - Helicóptero\n\n";
    cin >> val;
    
    switch(val) {
        case 1:
        case 2:
            cout << "Transporte Terrestre.\n";
            switch(val) {
                case 1:
                    cout << "Carro Selecionado.";
                    break;
                case 2:
                    cout << "Moto Selecionada.";
                    break;
            }
            break;
        case 3:
        case 4:
            cout << "Transporte Aéreo.\n";
            switch(val) {
                case 3:
                    cout << "Avião Selecionado.";
                    break;
                case 4:
                    cout << "Helicóptero Selecionado.";
                    break;
            }
            break;
        default:
            cout << "Transporte Desconhecido.\nNenhum Selecionado.\n";
            break;
    }