Algoritmos e Programação de Computadoressandra/pdf/class/2019-1/mc102/... · 2020-06-30 ·...

63
Profa. Sandra Avila Instituto de Computação (IC/Unicamp) MC102, 20 Março, 2019 Algoritmos e Programação de Computadores Comandos Repetitivos: while e for

Transcript of Algoritmos e Programação de Computadoressandra/pdf/class/2019-1/mc102/... · 2020-06-30 ·...

Page 1: Algoritmos e Programação de Computadoressandra/pdf/class/2019-1/mc102/... · 2020-06-30 · Algoritmos e Programação de Computadores Comandos Repetitivos: while e for. Agenda

Profa. Sandra AvilaInstituto de Computação (IC/Unicamp)

MC102, 20 Março, 2019

Algoritmos e Programaçãode Computadores

Comandos Repetitivos: while e for

Page 2: Algoritmos e Programação de Computadoressandra/pdf/class/2019-1/mc102/... · 2020-06-30 · Algoritmos e Programação de Computadores Comandos Repetitivos: while e for. Agenda

Agenda

● Comando while

● Comando for

● Variável acumuladora

● Comando continue and break

2

Page 3: Algoritmos e Programação de Computadoressandra/pdf/class/2019-1/mc102/... · 2020-06-30 · Algoritmos e Programação de Computadores Comandos Repetitivos: while e for. Agenda

Comandos Repetitivos*

● Até agora vimos como escrever programas capazes de executar comandos de forma linear, e, se necessário, tomar decisões com relação a executar ou não um bloco de comandos.

● Entretanto, eventualmente faz-se necessário executar um bloco de comandos várias vezes para obter o resultado esperado.

* Comandos repetitivos, iterativos, laços, loops, ...3

Page 4: Algoritmos e Programação de Computadoressandra/pdf/class/2019-1/mc102/... · 2020-06-30 · Algoritmos e Programação de Computadores Comandos Repetitivos: while e for. Agenda

Comandos Repetitivos

● Programa que imprime todos os números inteiros de 1 a 4.

● Será que dá pra fazer com o que já sabemos?

4

Page 5: Algoritmos e Programação de Computadoressandra/pdf/class/2019-1/mc102/... · 2020-06-30 · Algoritmos e Programação de Computadores Comandos Repetitivos: while e for. Agenda

Comandos Repetitivos

● Programa que imprime todos os números inteiros de 1 a 4.

● Será que dá pra fazer com o que já sabemos?

# Imprime todos os números inteiros de 1 a 4print(1)print(2)print(3)print(4)

5

Page 6: Algoritmos e Programação de Computadoressandra/pdf/class/2019-1/mc102/... · 2020-06-30 · Algoritmos e Programação de Computadores Comandos Repetitivos: while e for. Agenda

Comandos Repetitivos

● Programa que imprime todos os números inteiros de 1 a 100.

6

Page 7: Algoritmos e Programação de Computadoressandra/pdf/class/2019-1/mc102/... · 2020-06-30 · Algoritmos e Programação de Computadores Comandos Repetitivos: while e for. Agenda

Comandos Repetitivos

● Programa que imprime todos os números inteiros de 1 a 100.

# Imprime todos os números inteiros de 1 a 100print(1)print(2)print(3)print(4)# repete 95 vezes a linha acimaprint(100)

7

Page 8: Algoritmos e Programação de Computadoressandra/pdf/class/2019-1/mc102/... · 2020-06-30 · Algoritmos e Programação de Computadores Comandos Repetitivos: while e for. Agenda

Comando while

8

Page 9: Algoritmos e Programação de Computadoressandra/pdf/class/2019-1/mc102/... · 2020-06-30 · Algoritmos e Programação de Computadores Comandos Repetitivos: while e for. Agenda

Comando while

● Executa um bloco de comando(s) enquanto a condição é verdadeira (True).

while condicao:comando(s)

9

Page 10: Algoritmos e Programação de Computadoressandra/pdf/class/2019-1/mc102/... · 2020-06-30 · Algoritmos e Programação de Computadores Comandos Repetitivos: while e for. Agenda

Comando while

● Passo 1: Testa condição. ○ Se condição for verdadeira,

vai para o Passo 2○ Senão, vai para Passo 4

● Passo 2: Executa comandos● Passo 3: Volta para Passo 1 Comandos

Condição

Passo 1

Passo 2

Passo 4

Passo 310

Page 11: Algoritmos e Programação de Computadoressandra/pdf/class/2019-1/mc102/... · 2020-06-30 · Algoritmos e Programação de Computadores Comandos Repetitivos: while e for. Agenda

Comando while

● Passo 1: Testa condição. ○ Se condição for verdadeira,

vai para o Passo 2○ Senão, vai para Passo 4

● Passo 2: Executa comandos● Passo 3: Volta para Passo 1 Comandos

Condição

Passo 1

Passo 2

Passo 4

Passo 311

Page 12: Algoritmos e Programação de Computadoressandra/pdf/class/2019-1/mc102/... · 2020-06-30 · Algoritmos e Programação de Computadores Comandos Repetitivos: while e for. Agenda

Comando while

● Passo 1: Testa condição. ○ Se condição for verdadeira,

vai para o Passo 2○ Senão, vai para Passo 4

● Passo 2: Executa comandos● Passo 3: Volta para Passo 1 Comandos

Condição

Passo 1

Passo 2

Passo 4

Passo 312

Page 13: Algoritmos e Programação de Computadoressandra/pdf/class/2019-1/mc102/... · 2020-06-30 · Algoritmos e Programação de Computadores Comandos Repetitivos: while e for. Agenda

Comando while

● Passo 1: Testa condição. ○ Se condição for verdadeira,

vai para o Passo 2○ Senão, vai para Passo 4

● Passo 2: Executa comandos● Passo 3: Volta para Passo 1 Comandos

Condição

Passo 1

Passo 2

Passo 4

Passo 313

Page 14: Algoritmos e Programação de Computadoressandra/pdf/class/2019-1/mc102/... · 2020-06-30 · Algoritmos e Programação de Computadores Comandos Repetitivos: while e for. Agenda

Comando while

● Passo 1: Testa condição. ○ Se condição for verdadeira,

vai para o Passo 2○ Senão, vai para Passo 4

● Passo 2: Executa comandos● Passo 3: Volta para Passo 1 Comandos

Condição

Passo 1

Passo 2

Passo 4

Passo 314

Page 15: Algoritmos e Programação de Computadoressandra/pdf/class/2019-1/mc102/... · 2020-06-30 · Algoritmos e Programação de Computadores Comandos Repetitivos: while e for. Agenda

Comando while

● Programa que imprime todos os números de 1 a 100.

# Imprime todos os números de 1 a 100numero = 1while numero <= 100:

print(numero)numero = numero + 1

15

Page 16: Algoritmos e Programação de Computadoressandra/pdf/class/2019-1/mc102/... · 2020-06-30 · Algoritmos e Programação de Computadores Comandos Repetitivos: while e for. Agenda

Comando while

● Programa que imprime os n primeiros números.

# Imprime os n primeiros númerosn = int(input("Digite um número: "))numero = 1while numero <= n:

print(numero)numero = numero + 1

16

Page 17: Algoritmos e Programação de Computadoressandra/pdf/class/2019-1/mc102/... · 2020-06-30 · Algoritmos e Programação de Computadores Comandos Repetitivos: while e for. Agenda

Comando while

● O que acontece se a condição no comando while for falsa na primeira vez?

while a != a: a = a + 1

17

Page 18: Algoritmos e Programação de Computadoressandra/pdf/class/2019-1/mc102/... · 2020-06-30 · Algoritmos e Programação de Computadores Comandos Repetitivos: while e for. Agenda

Comando while

● O que acontece se a condição no comando while for falsa na primeira vez? Ele nunca entrar na repetição (no laço).

while a != a: a = a + 1

18

Page 19: Algoritmos e Programação de Computadoressandra/pdf/class/2019-1/mc102/... · 2020-06-30 · Algoritmos e Programação de Computadores Comandos Repetitivos: while e for. Agenda

Comando while

● O que acontece se a condição no comando while for sempre verdadeira?

while a == a: a = a + 1

19

Page 20: Algoritmos e Programação de Computadoressandra/pdf/class/2019-1/mc102/... · 2020-06-30 · Algoritmos e Programação de Computadores Comandos Repetitivos: while e for. Agenda

Comando while

● O que acontece se a condição no comando while for sempre verdadeira? Ele entra na repetição e nunca sai (laço infinito).

while a == a: a = a + 1

20

Page 21: Algoritmos e Programação de Computadoressandra/pdf/class/2019-1/mc102/... · 2020-06-30 · Algoritmos e Programação de Computadores Comandos Repetitivos: while e for. Agenda

Comando while-else

● Ao final do while podemos utilizar a instrução else.

while condicao:comando(s)

else: comando(s)

21

Page 22: Algoritmos e Programação de Computadoressandra/pdf/class/2019-1/mc102/... · 2020-06-30 · Algoritmos e Programação de Computadores Comandos Repetitivos: while e for. Agenda

Comando while-else

● Programa que imprime os n primeiros números.

# Imprime os n primeiros números n = int(input("Digite um número: "))numero = 1while numero <= n:

print(numero)numero = numero + 1

else: print("Fim.")

22

Page 23: Algoritmos e Programação de Computadoressandra/pdf/class/2019-1/mc102/... · 2020-06-30 · Algoritmos e Programação de Computadores Comandos Repetitivos: while e for. Agenda

Comando while-else

● Programa que imprime os n primeiros números.

# Imprime os n primeiros números n = int(input("Digite um número: "))numero = 1while numero <= n:

print(numero)numero = numero + 1

else: print("Fim.")

Atenção: Nem sempre faz sentido ter o else.

23

Page 24: Algoritmos e Programação de Computadoressandra/pdf/class/2019-1/mc102/... · 2020-06-30 · Algoritmos e Programação de Computadores Comandos Repetitivos: while e for. Agenda

Comando while-else

● Programa que imprime os n primeiros números.

# Imprime os n primeiros ...n = int(input("Digite um número: "))numero = 1while numero <= n:

print(numero)numero = numero + 1

else: print("Fim.")

# Imprime os n primeiros ...n = int(input("Digite um número: "))numero = 1while numero <= n:

print(numero)numero = numero + 1

print("Fim.")

24

Page 25: Algoritmos e Programação de Computadoressandra/pdf/class/2019-1/mc102/... · 2020-06-30 · Algoritmos e Programação de Computadores Comandos Repetitivos: while e for. Agenda

Listas

25

Page 26: Algoritmos e Programação de Computadoressandra/pdf/class/2019-1/mc102/... · 2020-06-30 · Algoritmos e Programação de Computadores Comandos Repetitivos: while e for. Agenda

Listas (Breve Introdução)

● Uma lista em Python é uma estrutura que armazena vários dados, que podem ser de um mesmo tipo ou não.

● Uma lista é criada como a construção: [dado1,dado2,...,dadon]

lista1 = [10, 20, 30, 40]lista2 = ["programação", "mc102", "python"]lista3 = ["oi", 2.0, 5, [10, 20]]

26

Page 27: Algoritmos e Programação de Computadoressandra/pdf/class/2019-1/mc102/... · 2020-06-30 · Algoritmos e Programação de Computadores Comandos Repetitivos: while e for. Agenda

Listas (Breve Introdução)

● O acesso a um dado específico da lista ocorre por indicação do seu índice.

lista3 = ["oi", 2.0, 5, [10, 20]]print(lista3[1]) # O índice do primeiro elemento é 0.2.0print(lista3[2])5print(lista3[3])[10, 20]print(lista3[4])IndexError: list index out of range

27

Page 28: Algoritmos e Programação de Computadoressandra/pdf/class/2019-1/mc102/... · 2020-06-30 · Algoritmos e Programação de Computadores Comandos Repetitivos: while e for. Agenda

Comando for

28

Page 29: Algoritmos e Programação de Computadoressandra/pdf/class/2019-1/mc102/... · 2020-06-30 · Algoritmos e Programação de Computadores Comandos Repetitivos: while e for. Agenda

Comando for

● É a estrutura de repetição mais usada no Python.

● Para cada elemento da lista, em ordem de ocorrência, é atribuído este elemento à variável e então é executado o(s) comando(s).

for variável in lista:comando(s)

29

Page 30: Algoritmos e Programação de Computadoressandra/pdf/class/2019-1/mc102/... · 2020-06-30 · Algoritmos e Programação de Computadores Comandos Repetitivos: while e for. Agenda

Comando for

● Passo 1: Verifica se percorreu toda a lista.○ Se não percorreu, atribui-se o próximo

elemento da lista para a variável.○ Se percorreu, vai para Passo 4

● Passo 2: Executa comandos● Passo 3: Volta para Passo 1 Comandos

Próximo elemento?

Passo 1

Passo 2

Passo 4

Passo 330

Page 31: Algoritmos e Programação de Computadoressandra/pdf/class/2019-1/mc102/... · 2020-06-30 · Algoritmos e Programação de Computadores Comandos Repetitivos: while e for. Agenda

Comando for

● Passo 1: Verifica se percorreu toda a lista.○ Se não percorreu, atribui-se o próximo

elemento da lista para a variável.○ Se percorreu, vai para Passo 4

● Passo 2: Executa comandos● Passo 3: Volta para Passo 1 Comandos

Próximo elemento?

Passo 1

Passo 2

Passo 4

Passo 331

Page 32: Algoritmos e Programação de Computadoressandra/pdf/class/2019-1/mc102/... · 2020-06-30 · Algoritmos e Programação de Computadores Comandos Repetitivos: while e for. Agenda

Comando for

● Passo 1: Verifica se percorreu toda a lista.○ Se não percorreu, atribui-se o próximo

elemento da lista para a variável.○ Se percorreu, vai para Passo 4

● Passo 2: Executa comandos● Passo 3: Volta para Passo 1 Comandos

Próximo elemento?

Passo 1

Passo 2

Passo 4

Passo 332

Page 33: Algoritmos e Programação de Computadoressandra/pdf/class/2019-1/mc102/... · 2020-06-30 · Algoritmos e Programação de Computadores Comandos Repetitivos: while e for. Agenda

Comando for

● Passo 1: Verifica se percorreu toda a lista.○ Se não percorreu, atribui-se o próximo

elemento da lista para a variável.○ Se percorreu, vai para Passo 4

● Passo 2: Executa comandos● Passo 3: Volta para Passo 1 Comandos

Próximo elemento?

Passo 1

Passo 2

Passo 4

Passo 333

Page 34: Algoritmos e Programação de Computadoressandra/pdf/class/2019-1/mc102/... · 2020-06-30 · Algoritmos e Programação de Computadores Comandos Repetitivos: while e for. Agenda

Comando for

● Passo 1: Verifica se percorreu toda a lista.○ Se não percorreu, atribui-se o próximo

elemento da lista para a variável.○ Se percorreu, vai para Passo 4

● Passo 2: Executa comandos● Passo 3: Volta para Passo 1 Comandos

Próximo elemento?

Passo 1

Passo 2

Passo 4

Passo 334

Page 35: Algoritmos e Programação de Computadoressandra/pdf/class/2019-1/mc102/... · 2020-06-30 · Algoritmos e Programação de Computadores Comandos Repetitivos: while e for. Agenda

Comando for

● Programa que imprime todos os números de uma lista.

# Imprime todos os números de uma listalista_numeros = [1, 2, 3, 4, 5]for numero in lista_numeros:

print(numero)

35

Page 36: Algoritmos e Programação de Computadoressandra/pdf/class/2019-1/mc102/... · 2020-06-30 · Algoritmos e Programação de Computadores Comandos Repetitivos: while e for. Agenda

Comando for

● Programa que imprime todos os números de uma lista.

# Imprime todos os números de uma listalista_numeros = [1, 2, 3, 4, 5]for numero in lista_numeros:

print(numero)

12345

36

Page 37: Algoritmos e Programação de Computadoressandra/pdf/class/2019-1/mc102/... · 2020-06-30 · Algoritmos e Programação de Computadores Comandos Repetitivos: while e for. Agenda

Comando for

● Programa que imprime todos os números de 1 a 100.

37

Page 38: Algoritmos e Programação de Computadoressandra/pdf/class/2019-1/mc102/... · 2020-06-30 · Algoritmos e Programação de Computadores Comandos Repetitivos: while e for. Agenda

A Função range

● É comum fazermos um laço for iterar sobre valores numéricos.

● Em Python, a função range(n) gera uma lista com valores de 0 até n-1.

38

Page 39: Algoritmos e Programação de Computadoressandra/pdf/class/2019-1/mc102/... · 2020-06-30 · Algoritmos e Programação de Computadores Comandos Repetitivos: while e for. Agenda

A Função range

● É comum fazermos um laço for iterar sobre valores numéricos.

● Em Python, a função range(n) gera uma lista com valores de 0 até n-1.

● Programa que imprime todos os números de 0 a 9.

# Imprime todos os números de 0 a 9for numero in range(10):

print(numero)

39

Page 40: Algoritmos e Programação de Computadoressandra/pdf/class/2019-1/mc102/... · 2020-06-30 · Algoritmos e Programação de Computadores Comandos Repetitivos: while e for. Agenda

A Função range

● Podemos especificar um intervalo de valores na função range(n)○ range(inicio,fim): gera-se números de inicio até fim-1.

● Programa que imprime todos os números de 5 a 9.

# Imprime todos os números de 5 a 9for numero in range(5,10):

print(numero)

40

Page 41: Algoritmos e Programação de Computadoressandra/pdf/class/2019-1/mc102/... · 2020-06-30 · Algoritmos e Programação de Computadores Comandos Repetitivos: while e for. Agenda

A Função range

● Programa que imprime todos os números de 1 a 100.

# Imprime todos os números de 1 a 100for numero in range(1,101):

print(numero)

41

Page 42: Algoritmos e Programação de Computadoressandra/pdf/class/2019-1/mc102/... · 2020-06-30 · Algoritmos e Programação de Computadores Comandos Repetitivos: while e for. Agenda

A Função range

● Podemos especificar um passo a ser considerado no intervalo de valores na função range(n)○ range(inicio,fim,passo): gera-se números de inicio

com incremento de passo até fim-1.

42

Page 43: Algoritmos e Programação de Computadoressandra/pdf/class/2019-1/mc102/... · 2020-06-30 · Algoritmos e Programação de Computadores Comandos Repetitivos: while e for. Agenda

A Função range

● Programa que imprime todos os números pares entre 0 e 13.

# Imprime todos os números pares entre 0 e 13for numero in range(0,13,2):

print(numero)

43

Page 44: Algoritmos e Programação de Computadoressandra/pdf/class/2019-1/mc102/... · 2020-06-30 · Algoritmos e Programação de Computadores Comandos Repetitivos: while e for. Agenda

A Função range

● Programa que imprime todos os números pares entre 0 e 13.

# Imprime todos os números pares entre 0 e 13for numero in range(0,13,2):

print(numero)

024681012

44

Page 45: Algoritmos e Programação de Computadoressandra/pdf/class/2019-1/mc102/... · 2020-06-30 · Algoritmos e Programação de Computadores Comandos Repetitivos: while e for. Agenda

while e for

● Programa que imprime os n primeiros números.

# Imprime os n primeiros númerosn = int(input("Digite um número: "))numero = 1while numero <= n:

print(numero)numero = numero + 1

# Imprime os n primeiros númerosn = int(input("Digite um número: "))for numero in range(1,n+1):

print(numero)45

Page 46: Algoritmos e Programação de Computadoressandra/pdf/class/2019-1/mc102/... · 2020-06-30 · Algoritmos e Programação de Computadores Comandos Repetitivos: while e for. Agenda

while ou for?

● Use um laço for, se você souber, antes de iniciar o laço, o número máximo de vezes que você precisará executar o corpo do laço.

● Por exemplo, se você estiver percorrendo uma lista de elementos, você sabe que o número máximo de iterações do laço que você pode precisar é “todos os elementos da lista”.

46

Page 47: Algoritmos e Programação de Computadoressandra/pdf/class/2019-1/mc102/... · 2020-06-30 · Algoritmos e Programação de Computadores Comandos Repetitivos: while e for. Agenda

while ou for?

● Use um laço while se você precisa repetir alguma computação até que alguma condição seja atendida, e você não pode calcular antecipadamente quando isso acontecerá.

○ for : “iteração definida” ○ while : “iteração indefinida”, não temos certeza de quantas

iterações precisamos nem podemos estabelecer um limite superior.

47

Page 48: Algoritmos e Programação de Computadoressandra/pdf/class/2019-1/mc102/... · 2020-06-30 · Algoritmos e Programação de Computadores Comandos Repetitivos: while e for. Agenda

Jogo de Adivinhação

import random # módulo randomnumero = random.randrange(1, 101) # número entre 1 e 100

palpites = 0meu_palpite = int(input("Adivinhe meu número entre 1 e 100: "))

while meu_palpite != numero:palpites = palpites + 1if meu_palpite > numero:

print(meu_palpite, "está acima.") elif meu_palpite < numero:

print(meu_palpite, "está abaixo.")meu_palpite = int(input("tente novamente: "))

print("\nÓtimo, você acertou em", palpites, "tentativas!")48

Page 49: Algoritmos e Programação de Computadoressandra/pdf/class/2019-1/mc102/... · 2020-06-30 · Algoritmos e Programação de Computadores Comandos Repetitivos: while e for. Agenda

Variável Acumuladora

49

Page 50: Algoritmos e Programação de Computadoressandra/pdf/class/2019-1/mc102/... · 2020-06-30 · Algoritmos e Programação de Computadores Comandos Repetitivos: while e for. Agenda

Variável Acumuladora

● Vamos ver alguns exemplos de problemas que são resolvidos utilizando laços.

● Há alguns padrões de solução que são bem conhecidos, e são úteis em diversas situações.

● O primeiro padrão deles é o uso de uma “variável acumuladora”.

Ler um inteiro positivo n, em seguida ler n números do teclado e apresentar a soma destes.

50

Page 51: Algoritmos e Programação de Computadoressandra/pdf/class/2019-1/mc102/... · 2020-06-30 · Algoritmos e Programação de Computadores Comandos Repetitivos: while e for. Agenda

Soma de Números

● Como n não é definido a priori, não podemos criar n variáveis e depois somá-las.

● A ideia é criar uma variável acumuladora que a cada iteração de um laço acumula a soma de todos os números lidos até então.

acumuladora = 0repita n vezes

leia um número auxacumuladora = acumuladora + aux

51

Page 52: Algoritmos e Programação de Computadoressandra/pdf/class/2019-1/mc102/... · 2020-06-30 · Algoritmos e Programação de Computadores Comandos Repetitivos: while e for. Agenda

Soma de Números

# Soma n númerosn = int(input("Digite o valor de n: "))acumuladora = 0for numero in range(n):

aux = int(input())acumuladora = acumuladora + aux # Acumula a soma

print("A soma é:", acumuladora)

● Programa que soma n números.

52

Page 53: Algoritmos e Programação de Computadoressandra/pdf/class/2019-1/mc102/... · 2020-06-30 · Algoritmos e Programação de Computadores Comandos Repetitivos: while e for. Agenda

Jogo de Adivinhação

import random # módulo randomnumero = random.randrange(1, 101) # número entre 1 e 100

palpites = 0meu_palpite = int(input("Adivinhe meu número entre 1 e 100: "))

while meu_palpite != numero:palpites = palpites + 1if meu_palpite > numero:

print(meu_palpite, "está acima.") elif meu_palpite < numero:

print(meu_palpite, "está abaixo.")meu_palpite = int(input("tente novamente: "))

print("\nÓtimo, você acertou em", palpites, "tentativas!")53

Page 54: Algoritmos e Programação de Computadoressandra/pdf/class/2019-1/mc102/... · 2020-06-30 · Algoritmos e Programação de Computadores Comandos Repetitivos: while e for. Agenda

Laços e os comandosbreak e continue

54

Page 55: Algoritmos e Programação de Computadoressandra/pdf/class/2019-1/mc102/... · 2020-06-30 · Algoritmos e Programação de Computadores Comandos Repetitivos: while e for. Agenda

Laços e o Comando break

● O comando break faz com que a execução de um laço seja terminada, passando a execução para o próximo comando depois do final do laço.

while condicao:comando(s)break

comando(s)

for variável in lista:comando(s)break

comando(s)

55

Page 56: Algoritmos e Programação de Computadoressandra/pdf/class/2019-1/mc102/... · 2020-06-30 · Algoritmos e Programação de Computadores Comandos Repetitivos: while e for. Agenda

Laços e o Comando break

● O que será impresso?

for numero in range(1,11):if (numero >= 5):

breakprint(numero)

print("Terminou o laço.")

1234"Terminou o laço."

56

Page 57: Algoritmos e Programação de Computadoressandra/pdf/class/2019-1/mc102/... · 2020-06-30 · Algoritmos e Programação de Computadores Comandos Repetitivos: while e for. Agenda

Laços e o Comando continue

● O comando continue faz com que a execução de um laço seja alterada para o final do laço.

● O que será impresso?

numero = 1while numero <= 10:

if (numero == 5):numero = numero + 1continue

print(numero)numero = numero + 1

print("Terminou o laço.")

57

Page 58: Algoritmos e Programação de Computadoressandra/pdf/class/2019-1/mc102/... · 2020-06-30 · Algoritmos e Programação de Computadores Comandos Repetitivos: while e for. Agenda

Laços e o Comando continue

● O comando continue faz com que a execução de um laço seja alterada para o final do laço.

● O que será impresso?

numero = 1while numero <= 10:

if (numero == 5):numero = numero + 1continue

print(numero)numero = numero + 1

print("Terminou o laço.")

1234678910"Terminou o laço."

58

Page 59: Algoritmos e Programação de Computadoressandra/pdf/class/2019-1/mc102/... · 2020-06-30 · Algoritmos e Programação de Computadores Comandos Repetitivos: while e for. Agenda

Exercícios

1. Faça um programa que lê um número inteiro positivo n e imprima os valores entre 2 e n, que são divisores de n.

59

Page 60: Algoritmos e Programação de Computadoressandra/pdf/class/2019-1/mc102/... · 2020-06-30 · Algoritmos e Programação de Computadores Comandos Repetitivos: while e for. Agenda

Exercícios

1. Faça um programa que lê um número inteiro positivo n e imprima os valores entre 2 e n, que são divisores de n.

2. Repita o Jogo de Adivinhação dando a opção do jogador de desistir, por exemplo, escolhendo o número 0.

60

Page 61: Algoritmos e Programação de Computadoressandra/pdf/class/2019-1/mc102/... · 2020-06-30 · Algoritmos e Programação de Computadores Comandos Repetitivos: while e for. Agenda

n = int(input("Digite um número inteiro positivo: "))

for numero in range(2,n+1):if (n % numero == 0): # se n é divisível por numero

print(numero, end=" ")

Exercício 1: Usando for

Faça um programa que lê um número inteiro positivo n e imprima os valores entre 2 e n, que são divisores de n.

61

Page 62: Algoritmos e Programação de Computadoressandra/pdf/class/2019-1/mc102/... · 2020-06-30 · Algoritmos e Programação de Computadores Comandos Repetitivos: while e for. Agenda

n = int(input("Digite um número inteiro positivo: "))

numero = 2while numero <= n:

if (n % numero == 0): # se n é divisível por numero print(numero, end=" ")

numero = numero + 1

Exercício 1: Usando while

Faça um programa que lê um número inteiro positivo n e imprima os valores entre 2 e n, que são divisores de n.

62

Page 63: Algoritmos e Programação de Computadoressandra/pdf/class/2019-1/mc102/... · 2020-06-30 · Algoritmos e Programação de Computadores Comandos Repetitivos: while e for. Agenda

Referências

● Os slides dessa aula foram baseados no material de MC102 do Prof. Eduardo Xavier (IC/Unicamp)

● Comandos repetitivos○ https://wiki.python.org.br/EstruturaDeRepeticao○ https://panda.ime.usp.br/pensepy/static/pensepy/07-Iteracao/maisiteracao.html#

o-comando-while○ https://runestone.academy/runestone/static/thinkcspy/MoreAboutIteration/toctree

.html○

63