No internet connection
  1. Home
  2. Dúvidas Gerais

Dica da repetição do for

Por matheus emanuel @math
    2023-10-28 12:57:29.264Z

    Olá, você já ficou em dúvida se deve iniciar o valor do for com 1 ou 0 ? Ou se usa <= ou < ?

    O objetivo deste post é esclarecer essa dúvida.

    Vamos direto ao ponto, dependendo do código, é opcional usar 1 ou 0
    mais isso fixa a sua escolha <= ou <

    resumindo, se você iniciar com 0 ponha <
    e se iniciar com 1 ponha <=

    Mais por que isso?

    Observe o exemplo a seguir.

    Jão (e não João) necessitava de um código de cálculo que contasse até 5.

    Então ele fez 2 códigos, porem ambos davam resultado errado.

    • codigo 1:

    let contando = 0;
    for(let i = 1 ; i < 5; i++){

    contando++
    

    }
    console.log(contando) // resultado 4

    • codigo 2 :

    let contando = 0;
    for(let i = 0 ; i <=5; i++){

    contando++
    

    }
    console.log(contando)//saida 6

    Observe no código 1 o "i" já iniciar com o valor 1 na primeira repetição, assim a cada repetição adicionando +1 e como limite e exige que seja < 5 faz com que se repita apenas 4 vezes

    Já no código 2, "i" começa com 0 e tem como limite <= 5, pois na volta um ele faz com 0, na volta 2 i = 1 e assim por diante. Quando chegar a <= 5(Menor ou igual), ele faz uma volta a mais, pois o valor ainda é verdadeiro.

    Então Jão (e não João) refez o código :

    • codigo 3:

    let contando = 0;
    for(let i = 1 ; i <= 5; i++){

    contando++
    

    }
    console.log(contando) // saida 5

    • codigo 4:

    let contando = 0;
    for(let i = 0 ; i < 5; i++){

    contando++
    

    }
    console.log(contando)// saida 5

    No código 3 podemos ver que "i" iniciar com o valor 1 assim a cada repetição adicionando + 1 porem como o limite e <=5( Menor ou igual a 5) ele ira realizar voltar ainda do igual fazendo assim a contabilização correta

    Já no código 4 o "i" e iniciar com 0 sendo assim cada repetição adicionando +1 e como valor exige apenas o <5(Menor que 5)
    Quando o loop chegar a 4, será finalizado logo, repetindo apenas 5 vezes.

    Conclusão

    Se você usar o valor inicial 1, use <= para garantir a última volta.
    Se utilizar o valor inicial 0 como valor inicial, poderá utilizar a quantidade de voltas desejadas <, assim finalizando o loop antes da próxima volta.

    • 9 respostas
    1. V
      Victor Biguete @victorbiguete
        2023-10-31 00:26:58.679Z

        E complementando a fala Quando devo fazer um código que comece com 0 ou 1 ? Simples, VOCÊ QUE DECIDE, vai da sua lógica e a forma que você criar o programa, o importante é ser funcional e lógico. Outra a pergunta também Qual devo usar ? While, DoWhile ou For ? mesma coisa não existe um certo ou errado, vai tudo da sua forma de criar o código, porque você pode fazer um While parecido com um For e vice e versa.

        1. Oi, tudo bem? Sou iniciante, então já peço desculpa se falar besteira, mas acho que depende.
          Se estiver fazendo a iteração para posições que percorram vetores ou matrizes, geralmente começa por 0, que é a primeira posição.
          Ao menos foi assim que entendi.

          1. CCamila Vieira @CamilaVieira
              2023-10-31 02:40:37.258Z

              Também não sou expert no assunto rs, mas normalmente começamos pelo 0 mesmo, pra percorrer posição de vetor ou matriz. Porém, pra resolver um problema ou outro pode ser necessário pular a primeira linha de uma matriz, então dependendo da lógica que você criar, pode colocar o for pra começar em 1. Acho que um dos exercícios da lista 3 resolvi iniciando o for no índice 1, já que era necessário pular a primeira linha da matriz.

              1. Perfeito. Vou fazer um resumo aqui com as dicas deste post e acrescento o caso dos vetores e matrizes.

              2. Em resposta anataliastoll:
                VVictor Biguete @victorbiguete
                  2023-10-31 18:00:36.656Z

                  Sim Natália, tudo depende do problema do exercício e como você vai resolve-lo. Na programação não existe apenas 1 forma de resolver a questão e sim varias então fique tranquila.

              3. Em resposta amath:

                Não tinha parado para pensar dessa maneira! Realmente, parece ser uma forma muito prática de organizar a lógica do código! Valeu por compartilhar!

                1. Em resposta amath:

                  perfeito

                  preformatado
                  
                  1. A
                    Em resposta amath:
                    Alan Eduardo da Cruz @alanEduardo
                      2023-10-31 01:26:03.788Z

                      Muito bom, me ajudou bastante!

                      1. Em resposta amath:

                        Ficou muito bom, parabéns!