Mandar um cafézinho para o programador:


Me ajude a transformar café em código!

Estrutura de Repetição FOR - Laço controlado em C++

Finalizando a apresentação das estruturas de repetição de nosso Curso de C++, vamos apresentar o laço FOR, o looping controlado.

Estrutura de repetição FOR em C++

A instrução de repetição FOR tem a seguinte sintaxe:
for(inicialização ; teste_condicional ; atualização){
   // código que executa enquanto
   // o teste condicional
   // for verdadeiro
}
Vamos lá.
A estrutura de repetição FOR tem três expressões dentro dela, separadas por ponto e vírgula.

O laço começa com algum tipo de inicialização, geralmente uma variável de contagem, com algum valor inicial.

Após essa inicialização, ocorre o teste condicional. Se for verdadeiro, o código dentro das chaves do laço FOR é executado.

Após cada iteração, ocorre a 'atualização', onde geralmente atualizamos o valor do contador, muito comumente é uma variável que vai se incrementar ou decrementar.

Então, novamente o teste condicional é realizado, em caso de ser verdadeiro, novamente o código do FOR é executado. Após essa iteração, ocorre mais uma vez a atualização.

Exemplo de uso do laço FOR

Em programação, um exemplo vale mais que mil palavras.
Vamos contar de 1 até 10, usando o laço for, o código é o seguinte:
#include <iostream>
using namespace std;

int main()
{
    int count;

    for(count=1; count<=10 ; count++){
        cout << count << endl;
    }

    return 0;
}
A nossa variável de controle é a count, que vai iniciar valendo 1.
Vamos printar ela na tela enquanto seu valor for menor ou igual a 10.
A cada iteração, incrementamos ela em uma unidade (count++), pois queremos que ela vá de 1 até 10.

Note que já fazíamos isso no laço WHILE, mas inicializávamos as variáveis antes do laço, dentro dele a gente atualizava a variável a cada loop e ocorria o teste condicional dentro dos parêntesis do WHILE.

Ocorre a mesma maneira no laço FOR, mas de maneira mais organizado.

Como usar a estrutura de repetição FOR

Vamos fazer o contrário agora, uma contagem regressiva, que conta de 100 até 1.
Para isso, inicializamos nossa variável de controle como 100.

O teste a ser realizado é: count > 0
Ou seja, enquanto a variável tiver um valor acima de 0, as iterações do laço FOR vão ocorrer.

E a cada iteração temos que decrementar o count, pois ele vai de 100 pra 1, de um em um.
Veja como ficou nosso código:
#include <iostream>
using namespace std;

int main()
{
    int count;

    for(count=100; count>0 ; count--){
        cout << count << endl;
    }

    return 0;
}
Nem sempre, porém, vamos incrementar ou decrementar de 1 em 1.
Podemos atualizar nossas variáveis da maneira que quisermos.

Por exemplo, vamos imprimir na tela todos os números pares de 1 até mil.
O primeiro par é o 2, então inicializamos nossa variável com esse valor.
Vamos incrementar de 2 em 2: count += 2
E o teste é enquanto a variável for menor ou igual a mil: count <= 1000
#include <iostream>
using namespace std;

int main()
{
    int count;

    for(count=2; count<=1000 ; count+=2){
        cout << count << endl;
    }

    return 0;
}
Veja a incrível velocidade com que esse código é executado.
Duvida da capacidade do C++? Coloque 1 milhão.

Quando usar o laço FOR

Muitas vezes, queremos fazer loopings com determinado número de iterações.
Por exemplo, ao pedir as notas de um aluno, vamos pedir o tanto de matérias que existem, para calcular a média.

Para calcular seu imposto de renda, precisamos somar todo seu salário do ano, ou seja, 13 salários (tem o décimo terceiro).

O laço FOR é ideal quando você sabe exatamente o número de iterações que vai fazer: "ah, quero calcular isso nesse intervalo de x até y", então pimba, use a estrutura de repetição FOR.

Quando não sabe quando o looping deve terminar ou tem menos controle sobre quantas iterações devem ocorrer, aí use o laço WHILE.

Lembrando que, no fundo, eles são absolutamente a mesma coisa.
Só vai ser mais fácil trabalhar com FOR algumas vezes e com WHILE em outras ocasiões.

Estrutura de Repetição FOR

Crie um programa que pede quantas notas você quer calcular a média, em seguida pede cada uma dessas notas e por fim exibe a média.

Vamos armazenar o número de notas que vamos pedir na variável n.
O próximo passo é pedir nota por nota, e aqui vem o pulo do gato: calcular a soma de todas as notas.

Dentro do FOR, a variável de controle aux vai da nota 1 até a nota n, pedindo uma por uma e armazenando essa nota na variável grade.

Vamos armazenar na variável sum, a soma de todas essas notas.

Por fim, exibimos sum/n para exibir a média.
Veja nosso código C++:
#include <iostream>
using namespace std;

int main()
{
    int aux, n;
    float grade, sum=0;

    cout <<"Quantas matérias: ";
    cin >> n;

    for(aux=1; aux<=n ; aux++){
        cout <<"Nota "<<aux<<": ";
        cin >> grade;
        sum += grade;
    }

    cout << "Média: "<<(sum/n)<<endl;

    return 0;
}
Note como essa estrutura de repetição é controlada: ela vai sempre rodar 'n' iterações, seja lá qual o valor de 'n' (obviamente, o número de notas deve ser um valor inteiro positivo).

Pode preencher com 2 notas, 3 notas, mil notas, um milhão de notas...
Poderoso, esse laço FOR não é?

Um comentário:

Ajude o C++ Progressivo

Que tal apoiar e fazer crescer o ensino da programação no Brasil ?

Ajudar nosso país a crescer e se desenvolver cada vez mais, tecnologicamente?

Clica abaixo pra saber mais!

Apoiar o Projeto Progressivo