Solucionado (ver solução)
Solucionado
(ver solução)
5
respostas

Do For While

Conforme ensinado fiz:

for( var i = 0; i < 10; i++ ) { alert( "O resultado é " + (2 * i) );

var i = 0;

while (i < 10) { alert("O resultado é: " + (2 * i)); i = i + 1; }

Porém o resultado foi até o 18. Testei algumas opções e percebi que incluindo novamente o "=" (mesmo sendo o "0" na variável) dá o resultado esperado.

Por que será que o "0", assim como o "1", quando tem apenas o sinal de "<" não chega ao "10"?

5 respostas

Olá, eu reformularia sua pergunta, está muito confuso.

Conforme ensinado em - Do for para o while!:

É 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.

A ideia é que o laço deve se repetir 10 vezes, se trocarmos o valor de i* por *zero e mantermos o <=, o laço irá se repetir 11 vezes! Dito isso, temos o seguinte código: -

for( var i = 0; i < 10; i++ ) {
      alert( "O resultado é " + (2 * i) );

**Então fiz conforme solicitado:**

var i = 0;

while (i < 10) {
        alert("O resultado é: " + (2 * i));
        i = i + 1;
        }

Porém o resultado foi até o 18 era para ir até o 20 (já que é tabuada de 2 multiplicada até o 10.

Testei algumas opções e percebi que incluindo novamente o "=" (mesmo sendo o "0" na variável) dá o resultado esperado. OU seja, ele multiplica até o 2x10=20.

<meta charset="UTF-8">
<script>

    var i = 0;

    while (i <= 10) {
        alert("O resultado é: " + (2 * i));
        i = i + 1;
    }

</script>

Por que ele conta 9 vezes ao invés de 10? Já que lá no texto do professor ele diz que o laço se repetiria 10 vezes quando a variável é "0" (para início de repetição) e o sinal do limitador vem sem o sinal "="?

Ok, utilizando os códigos que vc mandou, em:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Usando o < a contagem vai de 0 a 9 (estamos acostumados de 1 - 10), e são exatos 10 elementos. Esse comportamento é o mesmo em quase tudo em computação, que vai começar em 0. Se usar o <=

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Nesse caso temos 11 elementos (0 a 10).

Você pode ver isso funcionando por percorrer listas:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Espero que tenha conseguido atingir o ponto que estava tentando entender.

Olá, Karolyne Silva Alves! Tudo bem?

No primeiro caso, você está iniciando suas estruturas de repetições com a variável i = 0 e dizendo que essa mesma variável deve ser menor que 10 (assim, quando i recebe o valor de 10, sai do looping).

Portanto, a variável i receberá 0, 1, 2, 3..., 9. Como consequência, o looping repetirá 10 vezes, como o professor disse (não necessariamente até i receber o valor 10).

Para que i receba o valor 10 e o looping repita 10 vezes, é necessário iniciar a variável i igual 1.

solução!

Obrigada Giovani e Rosicley!

Só para esclarecer, eu compreendi a lógica, porém meu questionamento veio pois não percebi que nesse código o 2 é multiplicado pelo 0 também (já que o 0 é o início da contagem)! É por isso que não estava chegando ao 20. Foi um apego ao exercício anterior de tabuada.

Mas agora que vocês reforçaram a ideia principal, percebi meu engano!

Muito obrigada!