Você está na página 1de 5

2/2/24, 11:24 AM Programação C/C++ - Comandos de Repetição

Programação C/C++
Prof. Márcio Sarroglia Pinho

Comandos de Repetição
Os comandos de repetição são um recurso que permite que um certo trecho do código de um programa seja repetido um certo
número de vezes.

Na liguagem C existem três comandos de repetição: while, do-while e for.

Comando while
O comando while permite que um certo trecho de programa seja executado ENQUANTO uma certa condição for verdadeira. A
forma do comando while é a seguinte:
while (condição)
{
// comandos a serem repetidos
// comandos a serem repetidos
}
// comandos após o 'while'

O funcionamento é o seguinte:

1. Testa a condição;
2. Se a condição for falsa então pula todos os comandos do bloco subordinado ao while e passa a executar os comandos após o bloco do while.
3. Se condição for verdadeira então executa cada um dos comandos do bloco subordinado ao while.
4. Após executar o último comando do bloco do while volta ao passo 1.

O comando while deve ser usado sempre que:

não soubermos exatamente quantas vezes o laço deve ser repetido;


o teste deva ser feito antes de iniciar a execução de um bloco de comandos;
houver casos em que o laço não deva ser repetido nenhuma vez.

Exemplos

int continua, contador;


continua = 's';
contador = 0;

while (continua == 's') // enquanto for igual a 's'


{
// comandos a serem repetidos

printf("Repentindo....\n");

contador = contador + 1;

printf("Tecle 's' se deseja continuar\n");


continua = getch();
}

if (contador == 0)
printf("O bloco NAO foi repetido.");
else printf("O bloco foi repetido %d vezes", contador);

https://www.inf.pucrs.br/~pinho/LaproI/ComandosDeRepeticao/Repeticao.html 1/5
2/2/24, 11:24 AM Programação C/C++ - Comandos de Repetição

// Programa que calcula a idade média de um grupo de pessoas.


// A finalização da entrada de números é dada por um -1

int soma, quantidade, idade;

float media;

soma = 0;
quantidade = 0;
idade = 0;

while (idade != -1)


{
// comandos a serem repetidos

printf("Idade da pessoa %d. (tecle -1 se quiser encerrar).\n",


quantidade+1);
scanf("%d", &idade);

if (idade >=0)
{
soma = soma + idade;
quantidade = quantidade + 1;
}
}

// Faz o calculo da media de idade

if (quantidade >0)
{
media = (float) soma / quantidade;
printf("A media de idade das %d pessoas eh: %5.2f", quantidade,
media);
}
else printf("Nenhum dado foi informado.");

Observação:
Tenha atenção especial com o teste do comando while. As variáveis usadas no teste devem ter sido inicializadas antes do
teste.

Comando do-while
O comando do-while permite que um certo trecho de programa seja executado ENQUANTO uma certa condição for
verdadeira. A forma do comando do-while é a seguinte:

do
{
// comandos a serem repetidos
// comandos a serem repetidos
} while (condição);

// comandos após o 'do-while'

O funcionamento é o seguinte:

1. Executa os comando dentro do bloco do-while;


2. Testa a condição;
3. Se a condição for falsa então executa o comando que está logo após o bloco subordinado ao do-while .
4. Se condição for verdadeira então volta ao passo 1.

O comando do-while deve ser usado sempre que:

que não soubermos exatamente quantas vezes o laço deve ser repetido;
o teste deva ser feito depois da execução de um bloco de comandos;
o bloco de comandos deve se executado pelo menos 1 vez;

Exemplos

int continua, contador;

contador = 0;

https://www.inf.pucrs.br/~pinho/LaproI/ComandosDeRepeticao/Repeticao.html 2/5
2/2/24, 11:24 AM Programação C/C++ - Comandos de Repetição
// nao precisamos inicializar a variável 'continua' pois o teste é feito
// depois

do
{
// comandos a serem repetidos

printf("Repentindo....\n");

contador = contador + 1;

printf("Tecle 's' se deseja continuar\n");


continua = getch();
} while (continua == 's')

printf("O bloco foi repetido %d vezes", contador);

// Programa que calcula a idade média de um grupo de pessoas.


// A finalização da entrada de números é dada por um -1

int soma, quantidade, idade;

float media;

soma = 0;
quantidade = 0;

do {
printf("Idade da pessoa %d. (tecle -1 se quiser encerrar).\n",
quantidade+1);
scanf("%d", &idade);

if (idade >=0)
{
soma = soma + idade;
quantidade = quantidade + 1;
}
} while (idade != -1);

// Faz o calculo da media de idade

if (quantidade > 0)
{
media = (float) soma / quantidade;
printf("A media de idade das %d pessoas eh: %5.2f", quantidade,
media);
}
else printf("Nenhum dado foi informado.");

Comando for
O comando for permite que um certo trecho de programa seja executado um determinado número de vezes.
A forma do comando for é a seguinte:
for (comandos de inicialização;condição de teste;incremento/decremento)
{
// comandos a serem repetidos
// comandos a serem repetidos
}

// comandos após o 'for'

O funcionamento é o seguinte:

1. Executa os comandos de inicialização;


2. Testa a condição;
3. Se a condição for falsa então executa o comando que está logo após o bloco subordinado ao for .
4. Se condição for verdadeira então executa os comandos que estão subordinados ao for;
5. Executa os comandos de incremento/decremento;
6. Volta ao passo 2.

O comando for deve ser usado sempre que:

soubermos exatamente quantas vezes o laço deve ser repetido;


o teste deva ser feito antes da execução de um bloco de comandos;

https://www.inf.pucrs.br/~pinho/LaproI/ComandosDeRepeticao/Repeticao.html 3/5
2/2/24, 11:24 AM Programação C/C++ - Comandos de Repetição
houver casos em que o laço não deva ser repetido nenhuma vez.

Exemplos

int contador;

for (contador = 0; contador < 10; contador = contador+1)


{
printf("Contador : %d\n",contador);
}

printf("Valor do Contador após o laço: %d\n",contador);

int contador;
for (contador = 10; contador > 0; contador = contador-1)
{
printf("Valor do Contador após o laço: %d\n",contador);
}

printf("Valor do Contador após o laço: %d\n",contador);

Observações:

1. Os comandos de inicialização executados apenas 1 vez;


2. O contador é incrementado/decrementado sempre ao final da execução do bloco;
3. O teste é feito sempre antes do início da execução do bloco de comandos.

Comandos de Desvios
Os laços em C possuem dois comandos de desvios: break e continue. Estes comandos funcionam com todos os
comandos de repetição.

O comando break encerra o laço no ponto em que for executado.

// Este programa le NO MAXIMO 3 números positivos


// Caso um número negativo seja digitado no meio da seqüência o laço é
// encerrado de imediato

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

void main()
{
int contador, numero;
for (contador = 1; contador <= 3; contador = contador+1)
{
scanf("%d",&numero);
if (numero < 0)
break; // encerra o laço neste ponto !!!
}
printf ("Foram digitados %d numeros validos", contador-1);
getch();
}

O comando continue desvia o fluxo para o início do laço.

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

void main()
{
int contador, numero;

clrscr();
for (contador = 1; contador <= 5; contador = contador+1)
{
printf("Inicio do laco. Passo %d\n", contador);

if ((contador % 2) == 0)
{

https://www.inf.pucrs.br/~pinho/LaproI/ComandosDeRepeticao/Repeticao.html 4/5
2/2/24, 11:24 AM Programação C/C++ - Comandos de Repetição
printf("Terminado antes do tempo....\n");
continue;
}
printf ("Final do Laco. Passo %d\n", contador);
}
getch();
}

RESULTADO:

Inicio do laco. Passo 1


Final do Laco. Passo 1
Inicio do laco. Passo 2
Terminado antes do tempo....
Inicio do laco. Passo 3
Final do Laco. Passo 3
Inicio do laco. Passo 4
Terminado antes do tempo....
Inicio do laco. Passo 5
Final do Laco. Passo 5

https://www.inf.pucrs.br/~pinho/LaproI/ComandosDeRepeticao/Repeticao.html 5/5

Você também pode gostar