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:
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; }
Estão top de mais estes cursos
ResponderExcluir