C++ Básico Aula 04: Estruturas de controle de fluxo

 Imagem meramente ilustrativa

If e Else

    Com relação às estruturas de controle de fluxo vistas no curso de Linguagem C, o C++ também utiliza as instruções if para testar se uma condição é verdadeira e oferecer um caminho ao fluxo de dados, como também o else para oferecer um caminho alternativo caso a condição não seja satisfeita. 

    Se abaixo o exemplo clássico que testa se o número digitado pelo usuário é par ou impar:

  1. #include <iostream>
  2. using namespace std;
  3. int main()
  4. {
  5.     int x;
  6.     cout<<"Digite um número inteiro: ";
  7.     cin>>x;
  8.     if (x%2==0)
  9.     {
  10.         cout<<x<<" é um numero par!";
  11.     }
  12.     else
  13.     {
  14.         cout<<x<<" é um numero impar!";
  15.     }
  16.     return 0;
  17. }

A novidade do Else If

    O que temos de novidade no C++ é a implementação de uma instrução else if que oferece uma terceira via para o fluxo de dados caso if e else não sejam contemplados. Ficando assim a estrutura básica dessas declarações:

if (condição 1){
    //instruções se a condição 1 for satisfeita
}
else if (condição 2){
    //instruções se a condição 2 for satisfeita
}
else{
    //instruções se nenhuma das duas condições acima forem satisfeitas
}

Exemplo:

  1. #include <iostream>
  2. using namespace std;

  3. int main()
  4. {
  5.     int x;
  6.     cout<<"Digite um número inteiro: ";
  7.     cin>>x;
  8.     if (!x)
  9.     {
  10.         cout << "Você não digitou um número!";
  11.     }
  12.     else if (x%2==0)
  13.     {
  14.         cout<<x<<" é um numero par!";
  15.     }
  16.     else
  17.     {
  18.         cout<<x<<" é um numero impar!";
  19.     }
  20.     return 0;
  21. }

    Experimente copiar e colar esse código no GDB Online para testá-lo. Teste  digitando uma letra ao invés de um número inteiro. Se você fizer isso verá que mostra a mensagem "Você não digitou um número!". Porque?

    Ele primeiro testará a condição if (!x), isto é, se não x que equivale a perguntar se x não é válido. Se você digita um número válido ele passa direto por essa condição e vai testar a segunda. Se o resto da divisão por 2 é zero ele mostra que par, senão, mostra que é impar.

    Quando você digita letras satisfaz a condição if (!x), isto é, o x não é número válido, por isso a mensagem que não é número.

Switch Case

    O Switch Case do C continua valendo e funcionando da mesma forma em C++, porem se temos o else if como alternativa, ele acaba sendo usado apenas quando as condições de teste são simples.

    No exemplo abaixo ele até funcionará, mas se o usuário digitar uma letra dará um erro e especificar uma condição adequada para corrigir isso na linha 9 dará muito mais trabalho que no exemplo do else if.

  1. #include <iostream>
  2. using namespace std;

  3. int main()
  4. {
  5.     int x,y;
  6.     cout<<"Digite 0 ou 1: ";
  7.     cin>>x;
  8.     switch (x)
  9.     {
  10.         case 0:
  11.             cout<<"você digitou 0!";
  12.             break; 
  13.         case 1:
  14.             cout<<"você digitou 1!";
  15.             break;
  16.         default:
  17.             cout<<"você digitou outra coisa!";
  18.     }
  19.     return 0;
  20. }


Próxima Aula                                                                                                                        Aula Anterior

Referências

DEITEL, H. M. DEITEL, P. J. C++: Como programar. Pearson Education do Brasil. 2006.

GBDONLINE. Learn C++ Programming. Disponível em: <https://learn.onlinegdb.com/c%2B%2B_for_beginners> Acesso em 05 ago. 2024.

W3SCHOOLS. C++ Tutorial. Disponível em: <https://www.w3schools.com/cpp/default.asp> Acesso em 05 ago. 2024.