Você está na página 1de 27

Estruturas de repetição

Algoritmos e Programação II – Turma 02D


2º semestre de 2023

Prof. André Kishimoto


Prof. Gustavo Scalabrini Sampaio
Prof. Leandro Carlos Fernandes

(Conteúdo adaptado do material elaborado e gentilmente cedido pela


profa. Ana Grasielle Dionisio Correa e prof. Tomaz Mikio Sasaki)
Estruturas de repetição

• Repetem a execução de um bloco de código.


• A linguagem C possui as seguintes estruturas de repetição:
o while
o for
o do ... while
while

while (<expressão>)
{
<bloco executado enquanto expressão for verdadeira>
}
Exemplo while

4
for

for (<inicialização>; <condição>; <atualização>)


{
<bloco de código a ser repetido se condição for verdadeira>
}
for

executado apenas uma vez na


inicialização da sentença for

for (<inicialização>; <condição>; <atualização>)


{
<bloco de código a ser repetido se condição for verdadeira>
}
for

condição para que a execução


do bloco seja repetida

for (<inicialização>; <condição>; <atualização>)


{
<bloco de código a ser repetido se condição for verdadeira>
}
for

sentença executada ao final de


cada execução do bloco de código

for (<inicialização>; <condição>; <atualização>)


{
<bloco de código a ser repetido se condição for verdadeira>
}
for
int resultado = 0;
(2)
(1)
for (int contador = 0; contador < 11; ++contador)
{
(3)
resultado = 5 * contador;
printf("5 * %d = %d\n", contador, resultado);
}

<inicialização> -> int contador = 0


<condição> -> contador < 11
<atualização> -> ++contador
for
int resultado = 0;

(5)
for (int contador = 0; contador < 11; ++contador)
{ (4)
(6)
resultado = 5 * contador;
printf("5 * %d = %d\n", contador, resultado);
}

<inicialização> -> int contador = 0


<condição> -> contador < 11
<atualização> -> ++contador
for
int resultado = 0;

for (int contador = 0; contador < 11; ++contador)


{
resultado = 5 * contador;
printf("5 * %d = %d\n", contador, resultado);
}

*
<inicialização> -> int contador = 0
<condição> -> contador < 11
<atualização> -> ++contador
for
int resultado = 0;
(2)
(1)
for (int contador = 11; contador < 11; ++contador)
{
resultado = 5 * contador;
printf("5 * %d = %d\n", contador, resultado);
}

*
(3)
for

for (<inicialização>; <condição>; <atualização>)


{
<bloco de código a ser repetido se condição for verdadeira>
}

Eq
uiv
ale
a

<inicialização>
while (<condição>)
{
<bloco de código a ser repetido se condição for verdadeira>
<atualização>
}
Exemplo for

14
do ... while

do
{
<bloco repetido enquanto expressão for verdadeira>
}
while (<expressão>);
do ... while

do
{
<bloco repetido enquanto expressão for verdadeira>
}
while (<expressão>);

• Na estrutura do ... while, o bloco de código sempre é executado pelo menos 1 vez.
• Na estrutura while, há a possibilidade do bloco de código não ser executado nenhuma vez.
Exemplo
do ... while

17
Mudanças de fluxo no loop
• É possível alterar o fluxo de execução de uma estrutura de
repetição, caso necessário:
o Podemos sair de um loop antes do seu encerramento normal.
o Podemos ignorar um trecho de um loop, sem encerrá-lo.

18
Interrompendo um loop
• Para sair do bloco de códigos de um loop, usamos a instrução
break (a mesma do comando switch-case).
• Exemplo do próximo slide:
• Ler números inteiros até que 0 seja informado;
• Quando 0 for inserido, encerrar o loop;
• Após o loop terminar, exibir a média dos números.

19
Exemplo break

20
Ignorando parte de um loop
• Para ignorar um trecho do bloco de códigos de um loop, usamos
a instrução continue.
• Todas as instruções após continue são ignoradas e o loop volta
para o início, começando uma nova iteração.
• Exemplo do próximo slide:
• Ler números inteiros até que 0 seja informado;
• Quando 0 for inserido, encerrar o loop;
• Ignorar números negativos;
• Após o loop terminar, exibir a média dos números.

21
Exemplo continue

22
Exercício Júnior
Desenvolva um programa que:
• Sorteie um número inteiro no intervalo de 1 a 100 (incluindo os valores 1 e
100).
• Solicite que o usuário tente adivinhar o número sorteado, digitando o seu
palpite.
(se o usuário entrar um valor inválido - menor que 1 ou maior que 100 - o
programa deverá refazer a solicitação até que o usuário entre um valor
válido).
• Verifique se o palpite do usuário está correto:
• Se estiver correto, o programa deverá imprimir na tela “Parabéns!!! Você acertou!”
• Se o palpite for menor que o número sorteado, deverá imprimir “Você chutou muito baixo! O
valor correto é xx.” (onde xx é o número sorteado).
• Se o palpite for maior que o número sorteado, deverá imprimir “Você chutou muito alto! O valor
correto é xx.” (onde xx é o número sorteado). 23
Exercício Pleno
Desenvolva um programa semelhante ao anterior, só que com as seguintes
diferenças:
• Se o palpite do usuário estiver incorreto, o programa deverá imprimir a dica
(“você chutou muito baixo” ou “você chutou muito alto”) sem mostrar o
valor sorteado, incrementar o número de tentativas e dar uma nova chance
até que ele consiga acertar o número sorteado.
• Quando o usuário conseguir acertar o número sorteado, o programa deverá
apresentar a mensagem de parabéns e mostrar o número de tentativas
feitas pelo usuário até acertar o número.

24
Exercício Sênior
Desenvolva um programa semelhante ao anterior, só que com a seguinte
diferença:
• Caso o usuário não consiga acertar o número sorteado após a 5ª tentativa, o
programa deverá mostrar a mensagem “você excedeu o número máximo de
tentativas” e mostrar qual era o número sorteado.

25
MENOTTI, D.; OLIVEIRA, L. CI-1002: Programação 2. Disponível em: <
https://wiki.inf.ufpr.br/maziero/doku.php?id=prog2:start>. Acesso em: 03 de
janeiro de 2023.

Referências DEITEL, P.; DEITEL, H. C: Como programar. 6ª edição. Editora Pearson,


2011. (disponível na Biblioteca Virtual Pearson)

KISHIMOTO, A. Programação de computadores: desenvolvimento de


jogos digitais com GameMaker: Studio. 1ª edição. Edição do autor, 2016.

26

Você também pode gostar