Repetição (For)

Aula de Thiago Nepomuceno

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.

Antes de aprendermos mais sobre loops, precisamos aprender sobre alguns operadores comumente usados em C++, os operadores +=, -=, ++ e --. Se escrevemos a+=b, então adicionamos em a o valor de b. É semelhante ao comando a=a+b. Analogamente, a-=b subtrai da variável a o valor de b. O comando a++ adiciona 1 ao valor de a e a-- subtrai 1 ao seu valor.

Agora, aprenderemos a sintaxe do for, o comando for é separado em 3 partes distintas, a primeira parte é chamada de parte de inicialização, onde são atribuídos valores para as variáveis, a segunda parte é chamada de condição de parada e a última parte é conhecida como parte de incremento. Dessa forma, a sintaxe fica:

 
for(inicialização ; condição_de_parada ; incremento){
   //comandos
}

Note que cada parte do for é separada por um ; (ponto e vírgula).

Vamos para um exemplo simples: o exemplo abaixo inicializa uma variável i com valor 1 e enquanto i for menor que 100, iremos imprimir i na tela. A variável i é comumente chamada de contador, pois ela tem a função de contar quantas vezes o codígo dentro do for foi executado.

Após acabar todos os comandos dentro do for (no caso do exemplo, apenas a impressão de i na tela) a variável i é incrementada em uma unidade e passa novamente pela checagem da condição de parada. Caso a condição não seja satisfeita, os comandos dentro do for executarão mais uma vez, caso a condição de parada seja satisfeita o for acaba e o programa continua (no caso do exemplo ele apenas imprime o "\n" e termina, pois não tem mais comandos para serem executados).


#include <iostream> // cin e cout

using namespace std;
 
int main(){
    
    for(int i=1;i<100;i++){ // enquanto i for menor que 100
        cout<<i<<" "; // imprima o valor de i e um espaço
    }
    
    cout<<"\n";
    
    return 0;
}

Algumas vezes, queremos parar a execução do for antes do seu critério de parada original, ou seja, o for terá seu critério de parada original, mas se outra condição dentro do for for verdadeira queremos que ele acabe. No exemplo abaixo iremos executar um comando de leitura de uma variável 10 vezes, mas caso essa variável seja 0, encerraremos o for através do comando break. O comando break serve para parar qualquer loop, portante ele funciona exatamente da mesma maneira no while.


#include <iostream> // cin e cout

using namespace std;
 
int main(){

    int var;
    
    for(int i=1;i<=10;i++){ // Repete uma sequência de comandos 10 vezes
        cin>>var; //Ler um valor e armazena em var

        if(var == 0){//Se o valor for igual a 0
            break; //Encerre o for
        }

        cout<<2*var<<"\n";
    }
    
    return 0;
}

O último comando que precisamos aprender para dominar o uso dos loops em C++ é o comando continue. Semelhante ao break, normalmente nos utilizamos ele dentro de uma estrutura condicional (um if), porém ele não para a execução do loop. Sua função é ignorar todos os comandos que o loop ainda deveria fazer nessa iteração e passar para a próxima iteração. No exemplo abaixo imprimiremos todos os números de 1 a 100, com exceção dos múltiplos de 7.


#include <iostream> // cin e cout

using namespace std;
 
int main(){
    
    for(int i=1;i<=100;i++){ // Repete uma sequência de comandos 100 vezes
        
        if(i % 7 == 0){ //Se o resto da divisão de i por 7 for igual a 0
            continue; //Ignore todos os outros comandos que seriam executados após o continue e siga para a próxima iteração, ou seja, para o próximo valor de i
        }

        cout<<i<<" ";
    }
    
    cout<<"\n";
    
    return 0;
}

Agora que você já domina o uso dos loops em C++ treine seus conhecimentos resolvendo os exercícios propostos.