algo 06 loops while
DESCRIPTION
Aula de Algoritmos em C sobre laços de repetição (loops) com whileTRANSCRIPT
Algoritmos e Linguagem de Programação | Prof. Fernando Kenji Kamei
O que já vimos até agora...
2 de 12
} Definição de variáveis
} Tipos de variáveis
} Operadores lógicos e aritméticos
} Estruturas Condicionais
} IF
} IF / ELSE
} IF / ELSE IF / ELSE
} Estrutura de Repetição
} FOR
Algoritmos e Linguagem de Programação | Prof. Fernando Kenji Kamei
Hoje veremos...
3 de 12
} Fazendo loops contados com o while
} Fazendo loops com Do .. While
Algoritmos e Linguagem de Programação | Prof. Fernando Kenji Kamei
Fazendo loop utilizando o While
4 de 12
} Comando que faz a repetição de um trecho de código até que uma determinada condição seja atendida.
} Olhando para o nosso jogo de Adivinhação, poderíamos implementar o programa, fazendo com que seja sempre solicitados novos números, até que a pessoa acerte o número secreto.
Algoritmos e Linguagem de Programação | Prof. Fernando Kenji Kamei
Fazendo loop utilizando o While
5 de 12
while (expressão) {
<comandos>
}
Enquanto a condição da expressão for atendida
Algoritmos e Linguagem de Programação | Prof. Fernando Kenji Kamei
While vs For
6 de 12
} Qual a diferença entre esses dois comandos?
} Diferente do FOR, que possui uma quantidade determinada de repetição, o WHILE repete até que a condição seja atendida.
} Nossa realidade: enquanto não acertar o número secreto, pode chutar um novo número.
Algoritmos e Linguagem de Programação | Prof. Fernando Kenji Kamei 7 de 12
Adivinhacao.c utilizando o FOR #include <stdio.h>
int main() { int numeroSecreto = 10; int chute;
for(int i=0; i<=4; i++) { printf("JOGO DE ADIVINHAÇÃO\n\n"); printf("Digite um número inteiro qualquer: "); scanf("%d", &chute); if(chute == numeroSecreto) { printf("Parabéns, você acertou!"); break; } else if(chute > numeroSecreto) { printf("Chute é maior que o número secreto"); } else { printf("Chute é menor que o número secreto"); } }
Algoritmos e Linguagem de Programação | Prof. Fernando Kenji Kamei 8 de 12
Adivinhacao.c utilizando o WHILE #include <stdio.h> int main() { int numeroSecreto = 10; int chute; int acertou = 0; while(acertou == 0) printf("JOGO DE ADIVINHAÇÃO\n\n"); printf("Digite um número inteiro qualquer: "); scanf("%d", &chute); if(chute == numeroSecreto) { printf("Parabéns, você acertou!"); acertou = 1; } else if(chute > numeroSecreto) { printf("Chute é maior que o número secreto"); continue; } else { printf("Chute é menor que o número secreto"); continue; } }
Atribuindo 1 à variavel acertou. Ou seja, não
irá mais repetir o código
Preciso inicializar a variável
Enquanto for igual a 0 (zero), continua repetindo o trecho
que está dentro do while
Algoritmos e Linguagem de Programação | Prof. Fernando Kenji Kamei
Vamos praticar...
9 de 12
} Exercício 01:
Faça um programa que receba dois números X e Y. E, enquanto X > Y, calcule e mostre:
} a soma dos números pares desse intervalo de números, incluindo os números digitados;
} a multiplicação dos números ímpares desse intervalo, incluindo os digitados;
Algoritmos e Linguagem de Programação | Prof. Fernando Kenji Kamei
Vamos praticar...
10 de 12
} Exercício 02:
Faça um programa que, para um número indeterminado de pessoas: leia a idade de cada uma, sendo que a idade 0 (zero) indica o fim da leitura e não deve ser considerada. A seguir calcule:
} o número de pessoas;
} a idade média do grupo; } a menor idade e a maior idade.
Algoritmos e Linguagem de Programação | Prof. Fernando Kenji Kamei
Fazendo loop utilizando o Do ... While
11 de 12
} Neste comando a expressão de teste está disposta ao final da execução da sequência de comandos dentro do bloco, portanto o bloco é executado pelo menos uma vez.
do {
<comandos>
while ( expressão );
Enquanto a condição da expressão for atendida
Algoritmos e Linguagem de Programação | Prof. Fernando Kenji Kamei
Perguntas?
12 de 12
Não esqueçam de
ler os slides da próxima aula