Outra estrutura de repetição muito importante é o for. Diferentemente do while, além de passarmos uma condição para o for, passamos também um inicializador e um incremento, da seguinte maneira:

for(inicializador ; condicao ; incremento)
{
// seu código
}
view raw For.cpp hosted with ❤ by GitHub

Para que você entenda melhor como funciona o for, vamos resolver novamente o problem OBI, usando um for dessa vez. Vamos resumir novamente o problema para aqueles que não viram a aula de while.

Basicamente o problema nos pede que, dado o número N de participantes da olimpíada, as pontuações X e Y na primeira e segunda fase de cada competidor e a pontuação P de corte para ser convidado para o curso na unicamp, devemos imprimir a quantidade de convidados para o curso.

O problema nos diz que a pontuação total de um aluno é dada por X+Y. Então basta passarmos por cada aluno usando o for e fazermos um if para ver se sua pontuação é maior ou igual ao corte. Caso seja, incrementamos um à nossa resposta.

// OBI 2008 - Nível Prog. Júnior - Fase 1
// Problema: OBI
// Solução utilizando o "for" como estrutura de repetição
#include <iostream>
using namespace std;
int main()
{
int n, p, x, y, ans = 0; // declaro as variáveis
cin >> n >> p; //leio N e P
for(int i = 0 ; i < n ; i++)
{
cin >> x >> y; // leio o X e Y de cada competidor
x += y; // faço X receber a pontuação total
if(x >= p)
{
ans++; // nossa resposta aumenta
}
}
cout << ans << "\n"; // imprimo a nossa resposta
return 0;
}

Veja que ao invés de inicializar um contador fora do loop e incrementá-lo dentro do loop, fazemos isso na própria estrutura do for, de forma mais compacta. Os comandos break e continue podem ser usados da mesma forma que no while.

Problemas para praticar: