Mandar um cafézinho para o programador:


Me ajude a transformar café em código!

O laço WHILE em C++: Como usar a estrutura de repetição

Neste tutorial de laços e loopings, vamos apresentar a estrutura de repetição while, em C++.

Laço WHILE: Estrutura de Repetição

Como o nome pode sugerir na introdução, é uma estrutura que nos permite fazer repetições de determinados trechos de código em C++.

A estrutura do C++ é a seguinte:
while(teste){
   // Código caso o 
   // teste seja verdadeiro
}

Então, começa com o comando while, depois parêntesis, e dentro destes deve ter algum valor booleano, geralmente é uma expressão, um teste condicional que vai retornar verdadeiro ou falso.

Enquanto (while em inglês) aquele valor dentro dos parêntesis for verdadeiro, o código dentro da instrução while vai rodar.

Cada repetição é chamada iteração. Podem existir nenhuma, uma, mil, um milhão ou infinitas iterações em um laço (loopings infinitos), vai depender de como se comporta o teste condicional.

Veja o fluxograma do laço WHILE:
Estrutura de repetição while em C++ - Exemplo de código

Exemplo de uso de WHILE - Estrutura de Repetição

Vamos para os exemplos, assim aprendemos melhor.

Vamos criar um programa que exibe na tela os números de 1 até 10.
Para isso, vamos usar uma variável de controle, vamos chamar de count, pois será nosso contador.

Inicializamos com valor 1.
O teste condicional é: enquanto count for menor ou igual a 10
Dentro do WHILE damos o cout para imprimir o número.
Em seguida, temos que incrementar o contador em uma unidade, veja o código:
#include <iostream>
using namespace std;

int main()
{
    int count=1;

    while(count<=10){
        cout << count << endl;
        count++;
    }
    return 0;
}
O que ocorre é o seguinte. O código chega no WHILE, e lá ele testa se a variável é menor ou igual a 10.
Como ela vale 1, o teste é verdadeiro e entra no código. Lá imprimimos a variável, e incrementamos o contador.

Depois, o teste ocorre novamente, agora nossa variável vale 2 e dá verdadeiro para o teste, sendo executado seu código.

Depois, o teste ocorre com o contador valendo 3 , e assim vai indo, até o contador ser 10.
Nesse caso, o teste ainda é verdadeiro.

Porém dentro do código, o contador incrementa e vira 11.
Quando for testar de novo, o resultado é falso, então a estrutura de repetição para de rodar e termina o laço.

Veja como seria o código do contrário, exibindo de 10 até 1:
#include <iostream>
using namespace std;

int main()
{
    int count=10;

    while(count>0){
        cout << count << endl;
        count--;
    }
    return 0;
}

Como usar laço WHILE em C++

O exemplo abaixo é um looping infinito, mas o teste dentro do laço WHILE é sempre verdadeiro, então ele via ficar imprimindo a mensagem na tela infinitamente...
#include <iostream>
using namespace std;

int main()
{
    while(1)
        cout << "Curso C++ Progressivo\n";

    return 0;
}
Podemos também fazer uma contagem infinita:
#include <iostream>
using namespace std;

int main()
{
    int count=1;

    while(count++)
        cout << count << endl;

    return 0;
}
Note que colocamos o operador de incremento diretamente dentro do laço while.
Também não usamos chaves, isso é permitido pois o código do while tem apenas uma linha.

WHILE em C++: Validando entradas

Uma das funcionalidades do comando WHILE é ficar validando a entrada do usuário.
Por exemplo, vamos pedir uma nota ao usuário, de 0 até 10.

Se ele digitar menor que 0 ou maior que 10, vai entrar no WHILE.
Dentro da estrutura de repetição, avisamos que ele inseriu uma nota errada e pedimos que ele insira a nota novamente.

O laço while é um laço teimoso...ele se repete quantas vezes forem necessárias.
Quer ver? Teste colocar notas menor que 0 ou maior que 10, ele só vai parar quando a nota digitada for entre 0 e 10:
#include <iostream>
using namespace std;

int main()
{
    int grade;

    cout << "Digite uma nota: ";
    cin >> grade;

    while(grade<0 || grade>10){
        cout <<"Nota inválida, digite outra vez: ";
        cin >> grade;
    }

    return 0;
}
Bem simples, porém poderoso, essa estrutura de controle.

Exemplo de uso de WHILE em C++

Crie um programa que pede um número ao usuário e exibe a tabuada deste número.

Vamos armazenar o número digitado na variável num. Nossa variável de controle é a aux, que vai percorrer de 1 até 10.

Veja como fica nosso código:
#include <iostream>
using namespace std;

int main()
{
    int num, aux=1;

    cout << "Digite um numero: ";
    cin >> num;

    while(aux<=10){
        cout <<num<<" x "<<aux<<" = "<<num*aux<<endl;
        aux++;
    }

    return 0;
}

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