Ao estudar o loop for, dissemos que, se o número de repetições de qualquer ação for conhecido, você poderá encurtar o programa usando o operador de loop for. E se o número de repetições não for conhecido. E isso acontece com bastante frequência. 
Por exemplo: 
lembrando da tradução de um número de um sistema de numeração decimal para qualquer outro, precisamos dividir o número (e depois o resultado da divisão) pela base do sistema de numeração até obtermos zero na resposta. Quantas vezes vamos compartilhar não é conhecido. E existem muitos programas que implementam esse algoritmo.  
Como isso é implementado? 
Para tais casos na programação, existe um operador de loop com uma condição.  
Na linguagem de programação C, uma instrução de loop condicional começa com a palavra while e tem a seguinte estrutura.
 
enquanto (<condição>){
  corpo de loop
}
Como já sabemos: 
- uma condição é uma expressão, cujo resultado pode ser verdadeiro ou falso (como em uma declaração condicional) 
- o corpo do loop são os comandos que precisam ser repetidos 
- as chaves podem ser omitidas se o corpo do loop consistir em apenas um   operador
 
Como funciona o operador: 
1. Primeiro, o programa avalia a condição entre colchetes após a palavra while. Se a condição for atendida (true), então o programa executa a(s) instrução(ões) contida(s) no corpo do loop. 
2. Como no loop for, se o corpo do loop contiver apenas uma instrução, as chaves que destacam o corpo do loop podem ser omitidas. 
3. Após a conclusão da execução do corpo do loop, o programa retorna para verificar a condição e verifica novamente. 
4. Essas ações (verificar a condição - executar o corpo do loop) são repetidas até que a condição se torne falsa. 
5. Se na primeira execução deste operador a condição não for imediatamente satisfeita (false), então o programa nunca executará o corpo do loop. 
 
Analisando o trabalho desse operador, deve ficar claro que o corpo do loop deve conter um operador que afete a condição. 
Por exemplo, um loop pode incrementar o valor de uma variável usada em uma condição. 
 
Um exemplo de programa que chamaremos de "Contagem silenciosa" 
Vamos fazer o programa contar em vez de nós, por exemplo, até 10. 
O programa deve exibir a frase "Iniciar" e "Concluir", e entre essas ações exibir os números que estão sendo calculados. 
Assim,  
Iniciar 
1 2 3 4 5 6 7 8 9 10 
Concluir 
Um programa usando um loop while ficaria assim.
#include<iostream>
usando namespace std;
principal()
{
int eu;
cout << "Iniciar\n";
i=1;
while(i<=10)
{
cout << e<<" ";
i++; //Operador que afeta a mudança da variável na condição
}
cout << "\nConcluir";
}
Neste programa, atribuímos um valor à variável i=1 - a origem 
Além disso, desde que tenhamos o valor da variável i não maior que (ou seja, menor ou igual a) o valor que precisamos, nós  
 1 - exibe o valor da variável i  
 2 - aumenta o valor da variável i em 1 - este operador afeta o valor da condição entre colchetes. A variável i é incrementada, ou seja, em algum momento a condição i<=10 se tornará falsa. Isso acontecerá quando i for igual a 11. Nesse caso, o corpo do loop não será mais executado e o programa executará a próxima instrução após o loop, ou seja, cout << "\nConcluir"; 
            
            
                  
            
             
                    
            
                 
      
                  
           | 
	
		
 
     
              
              
                  
                       
            
                
          
            Vamos tentar escrever um programa para resolver o seguinte problema: 
Você deve inserir um número (que seja menor que 3.000.000 e determine o número de dígitos nele. 
 
Ideia de solução
Precisamos apenas cortar sequencialmente o último dígito do número (isso pode ser feito reduzindo o número em 10 vezes, usando divisão inteira por 10), e a cada vez precisamos aumentar o contador.  
Como resultado, após cortarmos todos os números, no contador obteremos o número de dígitos do número. 
De outra forma, o algoritmo pode ser formulado da seguinte forma: 
ATÉ O NÚMERO SAIR DE ZERO, DIMINUA 10 vezes e AUMENTE O CONTADOR EM 1.
 
| número (n) | 
contador | 
 
| 123 | 
0 | 
 
| 12 | 
1 | 
 
| 1 | 
2 | 
 
| 0 | 
3 | 
 
 
O programa ficará assim.
 
#include<iostream>
usando namespace std;
principal()
{
intn, contagem;
cin>> n;
contagem = 0;
enquanto (n != 0)
  {
  contar++;
  n = n/10;
  }
cout << "Número-" <<n<< " contém " << contar << " dígitos";  
}
Você precisa saber este programa de cor, porque. com base nisso, muitos outros problemas relacionados ao cálculo de números por dígitos são resolvidos. 
            
            
                  
            
             
                    
            
                 
      
                  
           | 
	
		
 
     
              
              
                  
                       
            
                
          
            Tarefa
A entrada do programa é o fluxo de dados — uma sequência de inteiros que termina em zero (o zero não está incluído na sequência). Você precisa encontrar a soma dos elementos dessa sequência.
 
Algoritmo de resolução
 soma=0
 input x // insira o primeiro numero
 while x != 0 // o sinal final de entrada é definido na condição,
 nc // isto é, até você digitar zero
   sum = sum + x // você pode fazer algo com o número original.
                  // Você pode adicionar uma verificação numérica para alguma condição, etc.
   input x // insira o próximo número
 kts
 imprime soma //saída do resultado
 
            
            
                  
            
             
                    
            
                 
      
                  
           |