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.
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:
- #include <iostream>
- using namespace std;
- int main()
- {
- int contador=0;
- while (contador<=100)
- {
- cout<<contador<<" ";
- contador+=2;
- }
- return 0;
- }
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:
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:
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:
- #include <iostream>
- using namespace std;
- int main()
- {
- for (int contador=0;contador<=100;contador+=2)
- {
- cout<<contador<<" ";
- }
- return 0;
- }
ou, seguindo as boas práticas de programação:
- #include <iostream>
- using namespace std;
- int main()
- {
- for (int i=0;i<=100;i+=2)
- {
- cout<<i<<" ";
- }
- return 0;
- }
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:
- #include <iostream>
- using namespace std;
- int main()
- {
- int contador=101;
- while (contador<=100)
- {
- cout<<contador<<" ";
- contador+=2;
- }
- return 0;
- }
Agora veja esse:
- #include <iostream>
- using namespace std;
- int main()
- {
- int contador=101;
- do
- {
- cout<<contador<<" ";
- contador+=2;
- }
- while (contador<=100);
- return 0;
- }
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.
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.