Jessica Zanelato/ fevereiro 25, 2018/ Blog/ 6 comments

O que é estrutura de repetição?

Dentro da lógica de programação é uma estrutura que permite executar mais de uma vez o mesmo comando ou conjunto de comandos, de acordo com uma condição ou com um contador.

São utilizadas, por exemplo, para repetir ações semelhantes que são executadas para todos os elementos de uma lista de dados, ou simplesmente para repetir um mesmo processamento até que a condição seja satisfeita.

Existem 4 estruturas de repetição básica para praticamente todas as linguagens de programação, seja C ou javascript.

While (enquanto)

While Loop

  • É dentre as 3 a mais simples.
  • Repete um bloco de código enquanto uma condição permanecer verdadeira
  • Caso a condição seja falsa, os comandos dentro do while não serão executados e a execução continuará  com os comandos após o while
  • A repetição do while é controlada por uma condição que verifica alguma variável. Porém para que o while funcione corretamente é importante que essa variável sofra alteração dentro do while. Ex: um contador.
  • Após entrar dentro da repetição, o bloco de comandos sempre será executado, mesmo que dentro do bloco a variável que está controlando a execução seja alterada.
  • Exemplo de código:
numero = 42;
divisor = 1;

while (divisor <= numero) {
    resto = numero % divisor;
    if (resto == 0) {
        printf("Divisor encontrado: %d \n", divisor);
    }
    divisor = divisor + 1;
}

Quando utilizar?

  • Não há necessidade de inicializar ou atualizar variáveis contadoras.
  • As etapas de inicialização ou atualização requerem muitas instruções e não caberiam elegantemente numa única linha do for.
  • As informações necessárias para avaliar a condição não dependem de uma variável contadora ou são obtidas durante a execução do bloco.

Do… While (faça enquanto)

Do While Loop

  • Muito parecido com o while, porém tem uma diferença crucial: condição é verificada após executar o bloco de comandos.
  • Há uma bloco de comandos e logo depois uma verificação. Assim caso a variável condicional for alterada dentro do bloco de comandos, isso afetará a validação da condição.
  • A escolha entre while e do while é mínima, então dependerá do bom senso do programador, que optará pela estrutura que deixar o algoritmo mais simples e legível.
numeroA = 42;
numeroB = 2;
do {
 resto = numeroB % numeroA;
 numeroB = numeroA;
 numeroA = resto;
} while (numeroA > 0); 

Quando utilizar?

  • Quando é necessário executar um bloco pelo menos uma vez para obter as informações necessárias para avaliar a condição.

For (para)

For loop

  • O For é utilizado para executar um conjunto de comandos executado por um número X de vezes.
  • É passada uma situação inicial, uma condição e uma ação a ser executada a cada repetição.
  • Uma variável é inicializada com uma valor inicial.
  • Essa variável é utilizada para controlar a quantidade de vezes em que o conjunto de comandos será executado.
  • E ao final do conjunto de comandos a variável sempre sofrerá uma alteração, aumentando ou diminuindo de acordo com a lógica utilizada.
for($contador = 0; $contador < 10; $contador++){
   echo $contador;
}

Quando utilizar?

  • O número de repetições é controlado por uma variável controladora.
  • Há necessidade de inicialização e atualização, mas que sejam simples o suficiente para que sejam acomodadas na linha do for. Para casos mais complexos, é melhor usar o comando while.
  • A avaliação da condição não depende de dados obtidos na execução do bloco.

Bônus: Foreach

  • O FOREACH é uma simplificação do operador FOR.
  • Permite acessar cada elemento individualmente iterando sobre toda a coleção sem a necessidade de informação de índices.
$vetor = array(1 => 'a', 2 => 'b', 3 => 'c', 4 => 'd', 5 => 'e');
foreach($vetor as $key => $item){
   echo $key . ' = ' . $item;
}

Quando utilizar?

  • Quando há uma coleção e você precisa acessar o valor ou dado que está no índice.
Share this Post

6 Comments

  1. Bom dia pessoas!
    Ficou faltando o principal laço de repetição (para mim, pelo menos, rsrsrs)


    move 1 to contador
    Perform Until contador >= 10
    | Código.......
    Add 1 to contador
    End-Perform

    Ok, ninguém mais usa Cobol mesmo… mas eu uso diariamente, rsrs.
    Muito bom o programa. É sempre legal ouvir assuntos mais técnicos assim.
    Abraço!

  2. Talvez eu seja apenas mais um entusiasta no mundo da programação (javascript) mas estou sempre aqui marcando presença no podcast de vocês meninas.
    Obrigado pelo programa, grande abraço e sucesso.

  3. Gostei da iniciativa desse site, obrigada pelas informações, continuarei acompanhando.

  4. olá pessoal! parabêns pelo pode programar, olha eu gostaria de saber como que faço e que estrutura uso para o exemplo dado: tenho numeros de 1 a 99 e quero criar 16 grupos por cartelas ou blocos só que ou seja tenho 33 cojuntos cada conjunto tem 3 numeros cada que corresponde 3 vezes 33 que é igual a 99 dai então vai repetindo todos por todos formando grupos de 16 conjutos e para e continua gerando até finalizar. estou começando agora na programação e não sei fazer. me ajude por favor, se vcs conseguirem prometo que sera viável para todos nos… agradeço desde já espero alguma resposta creio que vcs consegue está bem claro o fluxo grama. obrigado.

  5. Gosto de me inteirar sobre esses assuntos de Linguagem de Programação, apesar de não ser um grande conhecedor do assunto. Os Feedbacks nos ajudam a aprender um pouco, já que estou começando agora depois dos 50 e engatinhando é que se aprende a andar. Valeu pessoas gostei, um abraço a todos!

  6. olá, Excelente sua apresentação e conteúdo. Vejo que vocês instrutores podem melhorar muito as explicações para um leigo como eu ( possuo 56 anos ) estou procurando aprender programação e estou tentando enxergar o uso dos comandos. Seria bom que vocês colocassem exemplos práticos.
    ex: o while …, usamos muito para ccontrole de um estoque.
    ex2.: tenho um estoque de 10 produtos, e a cada saida do estoque de um produto eu controlo a saída do produto.
    como isso será processado pelo código ?..

Leave a Comment

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

*
*