Baixe o app para aproveitar ainda mais
Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
Resumo Repetição: ******************************************************************************* OBS: Essa matéria cai na P2 e P3! ******************************************************************************* Descrição: Repetição é um comando que permite executar várias vezes o mesmo trecho de código. Existem 3 comandos de repetição: for, while e do while O 'for' é recomendado pra repetições Determinadas/Finitas: Quando sabemos exatamente quantas vezes queremos repetir algo. O While é recomendado pra repetições Indeterminadas/Infinitas: Quando >>NÃO<< sabemos quantas vezes será preciso repetir algo. OBS: Em ambos criamos uma condição que é sempre verificada >>ANTES<< de executar o trecho de código e a repetição só para quando essa condição é falsa. 'Do While' é exatamente o mesmo esquema do 'While'! A diferença é que a condição que criamos só é verificada >>DEPOIS<< de executar o trecho de código. Ou seja, independente se a condição é Verdadeira ou Falsa, o 'Do While' >>SEMPRE<< executa o código pelo menos uma vez! OBS: Apesar de cada um ter o seu uso recomendado, isso não é uma regra! Podemos criar repetições Infinitas/Finitas com ambos! OBS2: 'Do While' só é ensinado por alguns professores, então sem riscos de ser cobrado em prova. E além disso, nenhuma prova pede pra resolver usando um tipo ou outro, sempre deixam à critério do aluno! :) -------------------------------------//---------------------------------------- Tipos de repetição: Repetição determinada: For Recomendado pra repetições determinadas/Finitas, ou seja, Quando sabemos exatamente quantas vezes queremos repetir algo. E como se trata de uma repetição Finita, precisamos de um contador pra controlar a repetição. Ex: Faça um programa que leia do teclado a idade e peso de 10 usuários e imprima na tela: int main (void){ int idade, i; float peso; for(i=0; i<10 ; i++){ puts("Digite a idade e peso:"); scanf("%d%f", &idade, &peso); printf("Idade: %d\n Peso: %.2f", idade, peso); } return 0; } O comando For é composto por 3 partes separadas por >> ; << (Ponto e Vírgula) for(i=0 ; i<10 ; i++) A primeira parte é onde fica o contador. Lembrando que pra ser um contador precisa ser inicializado! Na segunda parte vem a condição. O 'For' será executado >>Enquanto<< a condição é verdadeira! E na terceira parte é onde incrementamos ou decrementamos o contador. (Dependendo do enunciado) OBS: Existe uma convenção que recomenda sempre usar letras pra representar contadores (i, j, k, etc) Sendo 'i' o mais usado de todos pra representar o contador principal. EX: for(i=0 ; i<10 ; i++){ printf("Valor: %d\n",i); } for(i=9; i >= 0; i--){ printf("Valor: %d\n",i); } OBS: Percebe que esses dois 'For' são quase idênticos? :) Ambos exibem os mesmos números, a única diferença é na ordem que são exibidos! Um começa em 0 até 9 (Crescente) enquanto o outro começa em 9 até 0. (Decrescente) Dependendo do enunciado, inverter a ordem pode ser útil! -----------------------------------//---------------------------------------- Repetição indeterminada: While O recomendado é usar o while em repetições indeterminadas, ou seja, quando precisamos repetir algo infinitamente enquanto a condição de repetição é >>Verdadeira<<! OBS: Sempre que o enunciado >> Não << especificar a quantidade de repetições! EX: Faça um programa que leia a idade e o peso de pacientes e exiba a informação na tela até o usuário digitar uma idade igual a zero. int main (void){ int idade; float peso; puts("Digite sua idade ou zero para encerrar: "); scanf("%d", &idade); while(idade != 0){ puts("Digite o peso: "); scanf("%f",&peso); printf("Idade: %d\nPeso: %.2f\n", idade, peso); puts("Digite a idade ou zero para encerrar: "); scanf("%d",idade); } puts("Encerrando..."); return 0; } Percebe que enquanto o usuário >> NÃO << digitar uma idade igual a zero, a repetição while vai ficar repetindo para sempre? :D Esse trecho aqui: while(idade != 0) Você pode ler da seguinte forma: Enquanto a idade for diferente de zero: Executa o que tiver dentro do bloco entre chaves do while. OBS: É importante entender que >> Antes << do final do bloco do while, precisamos perguntar a idade do próximo usuário, pois dessa forma, assim que o bloco do while terminar, ele vai voltar pro começo do While e checar a condição novamente e só vai executar o bloco do while novamente se a condição continuar sendo verdadeira. -------------------------------------//--------------------------------------- Repetição indeterminada: do while (Opcional) O comando 'do while' funciona exatamente da mesma forma que o while! Mesmo esquema, também é recomendado para repetições indeterminadas, ou seja, infinitas. Vamos usar o mesmo enunciado do exemplo do 'while', só quero que você perceba o que muda usando o 'do while'. EX: Faça um programa que leia a idade e o peso de pacientes e exiba a informação na tela até o usuário digitar uma idade igual a zero. int main (void){ int idade; float peso; do{ puts("Digite a idade ou zero para encerrar: "); scanf("%d",&idade); if( idade != 0){ puts("Digite o peso: "); scanf("%f",&peso); printf("Idade: %d\nPeso: %.2f\n",idade,peso); } }while(idade != 0); puts("Encerrando..."); return 0; } OBS: Percebe como o programa ficou um pouco menor? :) E além disso, não precisamos pedir pro usuário digitar a idade perto do final do bloco! Porque a grande diferença do 'do while' é que a condição só é checada no final do bloco! Mas cuidado! Só podemos pedir o peso se a idade >>NÃO<< for zero, por isso precisamos usar uma condição pra verificar isso manualmente. if( idade != 0) OBS: Percebeu o ponto e vírgula no final do 'do while'? :) }while(idade != 0); É obrigatório colocar o >> ; << no fim do 'do while'! Lembrando que não se usa ponto e vírgula em nenhuma das outras repetições e nem nas condições if/else! OBS: Recomendo sempre usar o 'for' nas repetições em que precisamos usar um contador. O while quando é uma repetição que >> NÃO<< precisamos de contador e o 'do while' quando precisamos criar uma repetição infinita e a condição do enunciado é "Até o usuário digitar um valor X". OBS2: Lembrando que apesar de cada um ter o seu uso recomendado, isso não é uma regra! Podemos criar repetições Infinitas/Finitas com qualquer um! :) -------------------------------------//----------------------------------------
Compartilhar