View on GitHub

Capacitacao-CEOS-2-Javascript

Estruturas de Repetição

Em Javascript, temos duas estruturas de repetição (também chamados de loops) principais: while e for.

Estruturas de repetição são utilizadas para realizar algum comando inúmeras vezes, enquanto uma condição for verdadeira.

O while em Javascript tem a seguinte sintaxe:

while (condição) {
    // faça algo
}

Similar ao if, a nossa condição do loop vai sempre dentro dos ( ). E então usamos { } para delimitar o bloco do nosso while. O código a ser executado deve ir dentro das chaves { }.

Exemplo (contando de 0 a 9).

let i = 0;

while (i < 10) 
{
    console.log(i);
    i++;
}

Perceba que, assim como no if, o primeiro { pode vir na mesma linha que o while e a condição,ou na linha seguinte, é uma decisão de estilo. Particularmente, prefiro deixar tudo na mesma linha.

Lembrando que em loops while, temos que tomar cuidado para não criar loops infinitos, que acontecem quando a condição do loop permanece sempre como true.

O laço for em javascript, é similar ao de linguagens como Java ou C, e é diferente do for do Python por exemplo.

O for tem a seguinte sintaxe:

for (inicialização; condição; expressão_final) {
    // codigo vai aqui
}

Existem 3 coisas importantes em um loop for no Javascript: a inicialização, a condição, e a expressão/operação final.

Com um exemplo ficará mais claro:

Contando de 0 a 9

for (let i = 0; i < 10; i++) {
    console.log(i);
}

Vamos “dissecar” esse código:

let i = 0; é a fase de inicialização, aqui declaramos nossa variável, que no caso é o nosso contador.

i < 10; é a condição do nosso laço, enquanto ela for verdadeira, o código dentro do loop (console.log(i)) será executado.

i++ é a expressão final do nosso loop, sempre após o fim do código dentro do loop ela será executada. Ou seja, após executar o console.log(i), fazemos um i++ pra incrementar o contador.

Normalmente, é sempre possível escrever um laço for como while.

Reescrevendo o exemplo acima:

let i = 0; // inicialização
while (i < 10) { // condição (i < 10)
    console.log(i);
    i++; // expressão final
}

Outro exemplo com for:

Imprimindo numeros pares de 0 a 20 (incluindo o 20).

for (let i = 0; i <= 20; i += 2) {
    console.log(i);
}

Tentem compreender esse código, é similar ao anterior, com pequenas variações.

Normalmente, os loops param quando a condição do loop deixa de ser verdadeira, porém, existe um comando especial que pode sair instantaneamente de um loop: o break;.

Ele faz literalmente isso, se usarmos break dentro de um loop, seja ele um loop for ou while, o loop acaba imediatamente, independente da condição continuar sendo verdadeira ou não.

Um exemplo:

// loop pra imprimir de 0 a 5, porem para quando chega no 3.
for (let i = 0; i <= 5; i++) {
    console.log(i);
    if (i == 3) {
        break;
    }
}

Outro exemplo:

// tipico loop infinito, true sempre será true
let i = 321;
while (true) {
    if (i % 42 == 0) {
        // se achar um numero divisivel por 42, para
        console.log(i);
        console.log('eita');
        break;
    }
    
    i++;
}

E é assim que podemos usar o break. Para sair imediatamente de um loop.

Porém, é importante usar com cautela, pois loops sem break só terminam de uma forma: quando a condição de execução do loop se torna falsa! Porém, break muda um pouco isso, introduzindo outras formas de terminar o loop.

Exercicios

Agora, podem resolver os exercicios propostos 3, 4, 5 e 6!