Existem duas estruturas de repetição (loops) muito comuns na programação que são o for e o while. Vamos começar entendendo como funciona o while. O while faz o programa entrar em um loop enquanto a condição passada para ele for verdadeira. Veja como ele é simples:

while(condição)
{
// seu código
}
view raw While.cpp hosted with ❤ by GitHub

Vamos resolver o problema OBI da OBI nível júnior de 2008 usando esta estrutura. 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 while 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
#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
int i = 0; // contador para sabermos quantas vezes já rodamos o while
while(i < n)
{
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
}
i++; // nosso contador aumenta
}
cout << ans << "\n"; // imprimo a nossa resposta
return 0;
}

Um loop pode ser interrompido a qualquer momento com o comando break, caso seja desejado. Assim, podemos fazer o código da seguinte forma:

while(condição)
{
// seu código
if(condiçãodeparada)
{
break;
}
// seu código
}
view raw Break.cpp hosted with ❤ by GitHub

E caso deseje, você também pode pular para a próxima iteração do while, sem completar o loop, usando o continue, da mesma forma que se usa o break. Lembrando que ele só pulará para a próxima iteração caso sua condição para o while ainda seja verdadeira.

Problemas para praticar: