C++ Básico Aula 03: Laços e operadores condicionais

 Imagem meramente ilustrativa

Laço While

    Nosso velho conhecido while do curso de linguagem C permanece o mesmo no C++, isto é, ele permite a repetição de instruções inseridas entre o abre e fecha chaves {} promovendo um looping enquanto dado condição for satisfeita.

while (condição) {
  // linhas de código a serem executadas
}

    Para escrever a condição continuam valendo os operadores condicionais e lógicos vistos no curso de C: > maior que, < menor que, == igual a, >= maior ou igual a, <= menor ou igual a, != diferente de, && operador lógico E, || operador lógico OU e ! como operador lógico NÃO. Exemplo:

  1. #include <iostream>
  2. using namespace std;
  3. int main()
  4. {
  5.     int contador=0;
  6.     while (contador<=100)
  7.     {
  8.         cout<<contador<<" ";
  9.         contador+=2;
  10.     }
  11.     return 0;
  12. }

    No exemplo temos um looping simples sendo executado enquanto a variável contador for menor ou igual a 100. Na linha 8 temos a saída em tela do valor da variável que na linha 9 sofre um incremento de duas unidades, por isso a saída será 0 2 4 6 8 ... até 100. Esclarecendo que  contador+=2 equivale a contador = contador +2

    Além += temos outros operadores de atribuição. Por exemplo: 

    x-=2 equivale a x=x-2.
    x*=2 equivale a x=x*2
    x/=2 equivale a x=x/2

    Esclarecendo também que ao invés de 2 poderíamos ter usado o numeral 3, ou 4 ou 5... x+=5 seria equivalente a x=x+5. Em tempo: a instrução break continua sendo utilizada em C++ para interrupção do laço.

    Gostaria de chamar sua atenção para um pequeno detalhe: Repare no alinhamento das chaves do main {} e do while {}. Tente adotar essa prática deixando o fecha chaves } alinhado com o abre chaves { do comando. Vai facilitar sua vida impedindo você de esquecer uma chave aberta e provocar erros de compilação.

Laços For

    Também permanece no C++ a mesma estrutura do laço for visto na linguagem C:

for (inicialização do contador; condição final do contador; variação do contador
{
    //instruções do laço
}

    Lembrando que a inicialização do contador será como uma declaração de variável, isto é, int contador=0, por exemplo. A condição final é uma expressão lógica que determina o encerramento do laço interrompendo as repetições, sendo geralmente algo como contador<=100, por exemplo. 

    A variação do contador será um expressão atribuindo um incremento ou decremento da variável contador, por exemplo contador+=2. Lembrando também que a maioria dos programadores nomeará de i essa variável contadora.

    Assim usando o mesmo exemplo do while com o for, teríamos o seguinte código:

  1. #include <iostream>
  2. using namespace std;
  3. int main()
  4. {
  5.     for (int contador=0;contador<=100;contador+=2)
  6.     {
  7.         cout<<contador<<" ";
  8.     }
  9.     return 0;
  10. }

ou, seguindo as boas práticas de programação:

  1. #include <iostream>
  2. using namespace std;
  3. int main()
  4. {
  5.     for (int i=0;i<=100;i+=2)
  6.     {
  7.         cout<<i<<" ";
  8.     }
  9.     return 0;
  10. }

    Em ambos os laços você tem uma condição que é testada antes da execução do código. Porem existem situações extremas onde precisaremos executar o código pelo menos uma vez ANTES de testar a condição.

O laço Do While

    Tanto na linguagem C como no C++ existe a instrução Do/While que permite a execução de um código e o posterior teste da condição. Para entender bem a diferença compare esses dois códigos:

  1. #include <iostream>
  2. using namespace std;
  3. int main()
  4. {
  5.     int contador=101;
  6.     while (contador<=100)
  7.     {
  8.         cout<<contador<<" ";
  9.         contador+=2;
  10.     }
  11.     return 0;
  12. }

    Agora veja esse:

  1. #include <iostream>
  2. using namespace std;
  3. int main()
  4. {
  5.     int contador=101;
  6.     do
  7.     {
  8.         cout<<contador<<" ";
  9.         contador+=2;
  10.     }
  11.     while (contador<=100);
  12.     return 0;
  13. }

    Se você testar o primeiro código verá que ele NÃO promove nenhuma saída na tela porque o contador que vale 101 está maior que o permitido na condição, por isso as instruções dentro do looping NÃO são executadas.

    Já no segundo código ele mostra o valor 101 na tela porque a condição só será testada após a execução das instruções, só então o looping é interrompido.

    Como vimos as instruções de laços são as mesmas para o C e C++, mas aproveitamos a aula para mostrar alguns detalhes que ainda não tínhamos visto no curso de C.


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.