Clique sobre os tópicos listados abaixo para navegar até o conteúdo desejado.

  1. Entender o comando for
  2. Entender o comando while
  3. Entender o comando do-while

A linguagem de programação C fornece os comandos de repetição for, while e do-while. Nesta parte do tutorial vamos aprender esses comandos.

O funcionamento dos comandos de decisão já foram discutidos em Portugol: Comandos de Repetição sendo a leitura recomendada.

Os comandos de decisão são utilizando em conjunto com os operadores lógicos e relacionais vistos em C Operadores: Relacionais e C Operadores: Lógicos.

Para executarmos um bloco de código uma quantidade de vezes, a linguagem C fornece o comando for que possui uma sintaxe abaixo:

Sintaxe
for(atribuição ; condição ; atualização)
{
  //bloco de código
}
Onde
atribuição: bloco para iniciar variável
condição: condição para que a repetição seja executada
atualização: atualização de valores iniciados em atribuição
Fig. 1: Fluxograma do Comando for
Exemplo 1
#include <stdio.h>

int main()
{
    int i;
    for(i = 0; i < 3; i++)
    {
        printf("%d \n",i);
    }
}
Saída
0
1
2

Tanto a atribuição quanto condição e atualização vistos acima, podem podem conter mais de uma declaração ou condição em seu bloco.

Exemplo 2
#include <stdio.h>

int main()
{
    int i,j;
    for(i = 0,j=0; i < 10 || j <10 ; i++,j++)
    {
        printf("%d-%d \n",i,j);
    }
}
Saída
0-0 
1-1 
2-2

O comando while é utilizado quando precisamos executar um bloco de código e não sabemos quantas vezes serão com exatidão aguardando um determinada condição verdadeira ou falsa. Esse comando também pode ser utilizado como comando for.

Sintaxe
while(condicao)
{
  //bloco de código
}
Fig. 2: Fluxograma do Comando while
Exemplo 3
#include <stdio.h>
void main()
{
    int flag = -1;
    int opcao = -1;
    
    while (flag == -1 )
    {
        scanf("%d",&opcao);
    
        if(opcao == -1)
        {
            flag = 0;
            printf("fim do programa");
        }
        else
        {
            printf("opcao:%d\n",opcao);
        }
    }    
}
Saída
1
2
-1
            

Como mencionado acima, o comando while pode ser utilizado como o comando for já visto:

Exemplo 4
#include <stdio.h>
 
int main () 
{
   int a = 3;
   while( a < 3 ) {
      printf("%d\n", a);
      a++;
   }
 }
Saída
0
1
2

Diferente do comando while, o comando do-while executa o trecho de código que está contido em seu corpo e posteriormente verifica a condição, então decide se deve ou não continuar a próxima repetição:

Sintaxe
do
{
   //bloco de código
}
while(condicao);
Fig. 3: Comando do-while
Exemplo 5
#include <stdio.h>
void main()
{
    int flag = -1;
    int opcao = -1;
    
    do
    {
        scanf("%d",&opcao);
    
        if(opcao == -1)
        {
            flag = 0;
            printf("fim do programa");
        }
        else
        {
            printf("opcao:%d\n",opcao);
        }
    }
    while (flag == -1 );
}
Entrada
1
2
-1
Saída
1
opcao:1
2
opcao:2
-1
fim do programa
  1. 11/03/2025 - revisão 4 - Ajustes com descrição do while
  2. 08/10/2024 - revisão 3 - Ajustes pontuais
  3. 30/08/2024 - revisão 2 - Correção em links for,while e dowhile
  4. 28/09/2023 - revisão 1 - Correção em erros gramaticais, sintaxe, layout, exemplos while/do-while, adição de fluxogramas
  5. 19/05/2023 - versão inicial