2
respostas

11 Do for para o while! uso do < ou <= para variável iniciada com zero (0)

Vejo que minha dúvida é igual a dos demais colegas e é devido a uma informação no tótipo 11, que parece irregular, veja:

11 Do for para o while! PRÓXIMA ATIVIDADE

É comum usarmos o zero para iniciar um laço de repetição. Isso nos trará vantagens quando, nas próximas atividades, formos trabalhar com Array's. Mas preste atenção, quando usamos o zero para iniciar uma repetição, precisamos substituir o sinal do limitador (espaco2), de <= (menor igual) para apenas < (menor), pois o zero conta como primeiro elemento dentro do laço.

Só que a afirmação "Mas preste atenção, quando usamos o zero para iniciar uma repetição, precisamos substituir o sinal do limitador (espaco2), de <= (menor igual) para apenas < (menor), pois o zero conta como primeiro elemento dentro do laço." no contexto, parece não fazer sentido, pois o resultado com < ou <=, não altera o resultado do e código com While ou For.

Não é mesmo?

2 respostas

Olá, Rodolfo, tudo bem?

O sinal do limitador altera, sim, o resultado. Vou te dar um contexto que talvez você entenda melhor.

Vamos supor que você queira fazer um "for" para mostrar um texto 3 vezes na tela.

Então, você faz o código:

for( var i = 0; i <= 3; i++ ) {
    alert("Esse texto vai aparecer 3 vezes");
}

Mas será que vai aparecer 3 vezes? Vamos pensar como esse código vai rodar no loop do nosso for:

Primeiro loop: nosso contador equivale a 0, mostra o texto 1 vez e faz o acréscimo no contador.

Segundo loop: nosso contador equivale a 1, mostra o texto 2 vezes e faz o acréscimo no contador.

Terceiro loop: nosso contador equivale a 2, mostra o texto 3 vezes e faz o acréscimo no contador.

Quarto loop: nosso contador equivale a 3, mostra o texto 4 vezes e faz o acréscimo no contador.

Opa, mostrou o texto 4 vezes! Isso porque o sinal limitador que colocamos é o <= que significa "menor ou igual a", ou seja, ele só vai parar o loop quando o contador atingir a condição de ser menor que 3 ou igual a 3. Além disso, começamos o contador a partir de zero, então o zero vai contar como primeiro elemento do contador (0, 1, 2, 3 -> 4 elementos).

Agora, se rodarmos o código assim:

for( var i = 0; i < 3; i++ ) {
    alert("Esse texto vai aparecer 3 vezes");
}

Dessa vez, trocamos o <= por < que significa "menor que" e o código rodará:

Primeiro loop: nosso contador equivale a 0, mostra o texto 1 vez e faz o acréscimo no contador.

Segundo loop: nosso contador equivale a 1, mostra o texto 2 vezes e faz o acréscimo no contador.

Terceiro loop: nosso contador equivale a 2, mostra o texto 3 vezes e faz o acréscimo no contador.

E encerra-se o loop, pois o limitador < indica que o loop deve rodar somente enquanto o contador for menor que 3 (ou seja, até 2) e, como começamos a contar a partir de zero, quando o contador chegou no 2, já havia rodado 3 vezes (0, 1, 2 -> 3 elementos).

Espero ter ajudado, se ficou alguma dúvida, pergunte à vontade, o importante é entender a lógica!

Ok, entendi.

Obrigado!!