O comando continue em C

Por: Eduardo Casavella
A instrução continue é um comando de desvio incondicional.

Sua utilização dentro de um laço faz com que a execução da instrução atual (ou bloco de instruções atual) seja interrompida e passa para a próxima iteração do laço.

Note bem que o funcionamento do comando continue é diferente do comando break.

Enquanto no break termina o laço abruptamente, o comando continue não termina o laço e sim pula os comandos intermediários e passa para a próxima iteração.

No continue a condição do laço continua sendo testada, bem como o incremento também continua sendo executado.

Exemplo:

Vejamos um programa em linguagem C que utiliza o comando continue.


#include <stdio.h>
#include <conio.h>

int main(void)
{
 int i;

 for(i = 1; i < 10; i++)
 {
 if (i % 2 == 0) //se i for par não faz nada e pula para a próxima iteração
 {
 continue;
 }
 else // senão imprime os ímpares
 {
 printf("Numero: %d \n",i );
 }

 printf("Numero impar!\n\n");

 }

 printf("Final do programa!\n\n");
 getch();
 return 0;
}

TELA DE EXECUÇÃO

exemplo 1 comando continue

Tela de execução do comando continue

Observe que a execução do comando continue faz com que o programa pule para a próxima iteração do laço, sendo assim, o printf(“Numero impar!\n\n”); não é executado mesmo estando dentro do laço.

Como podemos, ver o bloco de instruções que contém esse printf foi interrompido e o programa pulou para a próxima iteração do loop toda vez que encontrou um valor par.

Mas e se ao invés de continue utilizassemos o break?

Neste caso, no primeiro valor par o break seria executado e o laço interrompido.

Veja o código usando break e a tela de execução.


#include <stdio.h>
#include <conio.h>

int main(void)
{
   int i;

   for(i = 1; i < 10; i++)
   {
       if (i % 2 == 0) //se i for par executa o break
       {
            break;
       }
       else  // senão imprime os ímpares
          {
             printf("Numero: %d \n",i );
          }

       printf("Numero impar!\n\n");

   }

   printf("Final do programa!\n\n");
   getch();
   return 0;
}

TELA DE EXECUÇÃO

execução exemplo 2 comando continue

Tela de execução do comando continue

Note que ao encontrar o primeiro valor par o break foi executado, o que interrompeu o laço e foi para o final do programa.

Até a próxima!