5
respostas

laço for e while

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

    var i = 0;

    while(i < 10){
        alert( "O resultado é " + (2 * i) );
        i++;
    }
</script>
5 respostas

Fala, Bruno!!! Tudo bem? Espero que sim!

Perfeito! Tanto o for como while possui o mesmo resultado nesse caso, mas é bom guardar suas estruturas na mente, pois haverá situações em que um será melhor que outro e vice-versa.

Bons estudos e vamos em frente!!!

Fiz o mesmo procedimento mas com while o resultado "20" não foi impresso, testei alterando o while para "while(i<=10)" e desta forma imprime o "O resultado é 20". Reescrevi varias vezes e não localizei a falha.

<meta charset="UTF-8"> 

<script>
function mostra (frase){
    document.write(frase);
    document.write("<br>");
}

var i = 0;

while(i<10){
     mostra ("O resultado é " + (2*i));
     i++;
}
</script>

Fala, Weslley! Como vai? Tudo bom?

É isso mesmo! Quando colocamos <= vai nos mostrar o valor 20

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

Agora se retirarmos o sinal de igual (=) ele entende que você quer multiplicar todos os números menores que 10

Espero ter ajudado, Weslley!

Qualquer dúvida estamos por aqui!!! ;-)

Olá Cassio, grato pelo suporte. Contudo restou uma dúvida na aula 7, item "11 - Do for para o while!" O texto diz: "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 exercício em questão, que é similar a tabuada do 2, eu notei que nas as condições de repetição "i <= 10" ou "i <10" tanto na função "for" quanto na "while" e "i" valendo "0", o programa executa normalmente a multiplicação por 2 * 0 e mostra o resultado. No entanto quando "i" valer 10 será o "i<10" é false, e consequentemente o laço de repetição é interrompido após o 9.

Esse processo está claro para mim, o que está confuso é o que o texto diz "quando usamos o zero para iniciar uma repetição, precisamos substituir o sinal do limitador (espaco2), de <= (menor igual) para apenas < (menor)", sendo que caso seja o objetivo do programa apresentar o resultado "20" será necessário usar "i <=10".

É isso mesmo, Weslley! Você está no caminho certo.

Vou colocar alguns exemplos de testes aqui. Dê uma olha e faça alguns testes no seu código:

Temos o seguinte código:

<meta charset="UTF-8">

<script>
    function mostra(frase) {
        document.write(frase);
        document.write("<br>");
    }

    var i = 0;

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

    for (var i = 0; i <= 10; i++) {
        mostra("O resultado é " + (2 * i));
    }
</script>

Esse é o que já estamos vendo. Vai apresentar a multiplicação de 0 a 10. Ok!!!

<script>
    function mostra(frase) {
        document.write(frase);
        document.write("<br>");
    }

    var i = 0;

    while (i < 10) {
        mostra("O resultado é " + (2 * i));
        i++;
    }

    for (var i = 0; i < 10; i++) {
        mostra("O resultado é " + (2 * i));
    }
</script>

Agora limitamos a multiplicação até o 9 retirando o simbolo de igual. Sem segredo!!!

Agora vamos realizar testes ;-)

    var i = 1;                  // Quero começar pelo número 1

    while (i < 10) {
        mostra("O resultado é " + (2 * i));
        i++;
    }

    for (var i = 1; i < 10; i++) { // Aqui também altero para começar com 1
        mostra("O resultado é " + (2 * i));
    }
</script>

Posso também querer começar com qualquer número, tudo bem, Weslley? Até 10 rs

Agora um que é muito usado por aí, (e confesso que não gosto muito de usar, mas vai de cada um).


    var i = 1;

    while (i < 11) {
        mostra("O resultado é " + (2 * i));
        i++;
    }

    for (var i = 1; i < 11; i++) {
        mostra("O resultado é " + (2 * i));
    }
</script>

Quis comeaçar com 1 e que minha tabuada vá até 10, só que utilizando o sinal < tenho que colocar o 11, pois ele chegar até o 10 e para ;-)

Isso você vai ver muito por aí!!!

Faça vários testes em cima disso, Weslley!!! É bem interessante!

Estamos aqui p/ ajudar!!!

É só chamar!!!

Um abraço e vamos em frente!!!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software