Repetição (While)

Aula de Rogério Júnior

Uma estrutura de repetição, também conhecida como loop, é uma estrutura que permite que o programador execute uma sequência de comandos várias vezes.

O loop mais simples é o while. Sua sintaxe é:


 while(condição){
  //faça isso
}

Ou seja, enquanto a condição for verdadeira, faça o que estiver entre as chaves. Assim como o if, ele não precisa de ; ao fim das chaves. Abaixo podemos ver o comando while em ação.


#include <iostream> // cin e cout

using namespace std;
 
int main(){

  int n=1; // declaro a variável n começando com o valor 1
  
  while(n<=10){ // enquanto n for menor ou igual a 10
    cout<<n<<" "; // imprima o valor de n e um espaço
    n = n + 1; // e adicione 1 ao seu valor
  }
  
  cout<<"\n";
  
  return 0;
}

Veja que a cada repetição do loop, o programa imprime o valor de n e adiciona 1 ao seu valor. Após 10 repetições, seu valor será 11, e, quando no começo do loop, a condição for checada, ela será falsa e o loop acabará. Vale lembrar que o while checa a condição apenas no começo do loop, ou seja, ele não acaba assim que a condição se torna falsa, mas apenas no momento em que ele recomeça com a condição falsa.

Vamos supor o seguinte problema: "Imprima todos os números pares entre A e B (incluindo A e B)", para saber se um número é par usaremos o operador % que serve para cacular o resto da divisão entre dois números, logo X%Y resultará no resto da divisão de X por Y, dessa forma, X%2 resulta em 0 caso o número seja divisível por dois (par) e 1 caso contrário (impar). Um maneira simples de resolver esse problema é testar todos os números entre A e B, caso o número seja par imprima ele na tela, o código que implementa essa ideia pode ser conferido a seguir.


#include <iostream> // cin e cout

using namespace std;
 
int main(){

  //Declaro as variáveis A e B
  int A;
  int B;
  
  // Leio os valores de A e B
  cin >> A >> B;
  
  int i = A; //Crio uma variável contador i e digo que ela começa de A
  while(i<=B){ //Enquanto i for menor ou igual ao B
    if(i%2==0){ //Se i é par
      cout<<i<<" "; //Imprimo o i na tela     
    }
    i = i + 1; //Vou para o próximo valor de i
  }
  
  cout<<"\n"; //Apenas uma quebra de linha.
  
  return 0;
}

As estruturas de repetições são mais complexas que os comandos que aprendemos anteriormente. Não precisa se desesperar, pode levar algum tempo para você dominá-las, a melhor forma é treinando com os exercícios propostos e aprendendo com as difículdades que irão surgir.