Notas Técnicas do zhaoJian

Curso IT Fundamentos JavaScript 042_Loops while、for

Aprendizado / Fundamentos JavaScript ~6796 palavras · 17 min de leitura - visualizações

Instruções de loop são métodos usados para executar repetidamente um bloco de código. JavaScript fornece diferentes tipos de instruções de loop como while, do-while, for, etc. Um corpo de loop completo inclui: expressão de inicialização, condição de loop e iterador.

Loop while

O loop while é usado para executar repetidamente um bloco de código quando a condição é true. A execução única do corpo do loop é chamada de uma iteração. Qualquer expressão ou variável pode ser uma condição de loop, a condição de loop será calculada e o resultado será convertido em um valor booleano. Semelhante ao if, se o corpo do loop tiver apenas uma instrução, você também pode omitir as chaves {…}, mas isso não é recomendado. A condição é verificada antes de cada iteração.

Exemplo:

let i = 0; // Expressão de inicialização, geralmente usada para declarar variável contador, sem ela ocorrerá erro undefined
while (i < 5) { // Condição de loop, se for `true`, o loop continuará executando
console.log(i);
i++; // Iterador, geralmente usado para atualizar a variável contador, correspondendo à condição de loop
}

Exemplo de loop infinito:

let i = 0;
while (1) { // Condição sempre true entrará em loop infinito
console.log(i);
i++; // Geralmente usa esta forma de atualização do contador para a condição de loop
if (i >= 5) break; // Comentar esta linha entra em modo de loop infinito
}

Loop do-while

O loop do-while é semelhante ao loop while, mas ele executa o corpo do loop uma vez primeiro e depois verifica se a condição é true. Se a condição for verdadeira, continua executando o corpo do loop. É necessário prestar atenção ao cenário de uso. Use do-while apenas quando for necessário executar o corpo do loop pelo menos uma vez, independentemente de a condição ser verdadeira ou não. Para outros cenários, recomenda-se o loop while. A condição é verificada após cada iteração.

Exemplo:

let i = 0;
do {
console.log(i);
i++;
} while (i < 5);

Loop for

O loop for é uma estrutura de loop mais complexa, mas também a mais comumente usada, utilizada para executar repetidamente um bloco de código. O loop for contém três partes: expressão de inicialização, condição de loop e iterador. A seguir está a sintaxe básica do loop for: A condição é verificada antes de cada iteração, e outras configurações podem ser usadas.

Exemplo:

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

Exemplo de loop infinito:

let i = 0;
for ( ; ; ) { // Omitir todas as condições entrará em loop infinito
console.log(i);
i++; // Geralmente usa esta forma de atualização do contador para a condição de loop
if (i >= 5) break; // Comentar esta linha entra em modo de loop infinito
}
Omitindo segmentos de instrução

O loop for pode omitir qualquer um ou mais da expressão de inicialização, condição de loop ou iterador, mas o ponto e vírgula ; deve ser mantido. O ponto e vírgula é usado para separar cada parte, quando uma parte é omitida, o ponto e vírgula correspondente ainda precisa ser mantido.

Exemplo:

let x = 0;
for (; x < 5; x++) {
console.log(x);
}
// Omite a expressão de inicialização, movendo-a para fora do loop, o loop ainda é válido
let y = 0;
for (;; y++) {
if (y >= 5) {
break;
}
console.log(y);
}
// Omite a condição de loop, terminando o loop através da instrução `if` e `break`
let z = 0;
for (; z < 5;) {
console.log(z);
z++;
}
// Omite o iterador, o iterador é movido para dentro do corpo do loop, o loop ainda é válido

Loops aninhados

Loop aninhado refere-se a incluir outra estrutura de loop completa dentro do corpo de um loop. O loop aninhado executa o loop interno uma vez a cada execução do loop externo.

Exemplo de triângulo regular:

// Exemplo A
for (let i = 1; i <= 5; i++) { // Loop externo, controla o número de linhas, de 1 a 5.
let row = ''; // A cada execução do loop externo, cria uma string vazia `row`, usada para armazenar as estrelas da linha atual.
for (let j = 1; j <= i; j++) { // Loop interno, controla o número de estrelas em cada linha, de 1 ao número da linha atual `i`.
row += ''; // Adiciona estrela a `row`, formando a string de estrelas da linha atual.
}
console.log(row); // Exibe a string de estrelas da linha atual.
}
// Exemplo B
for (let i = 1; i <= 5; i++) { // Loop externo representa o número de linhas
for (let j = 1; j <= i; j++) { // Loop interno representa as colunas
document.write(''); // Usa estrela como elemento gráfico
}
document.write('</br>'); // Quebra de linha
}

Exemplo de triângulo invertido:

// Exemplo A
for (let i = 5; i >= 1; i--) { // Loop externo, controla o número de linhas, de 1 a 5.
let row = ''; // A cada execução do loop externo, cria uma string vazia `row`, usada para armazenar as estrelas da linha atual.
for (let j = 1; j <= i; j++) { // Loop interno, controla o número de estrelas em cada linha, de 1 ao número da linha atual `i`.
row += '* '; // Adiciona estrela a `row`, formando a string de estrelas da linha atual.
}
console.log(row); // Exibe a string de estrelas da linha atual.
}
// Exemplo B
for (let i = 1; i <= 5; i++) { // Loop externo representa o número de linhas
for (let j = 0; j <= 5 - i; j++) { // Loop interno representa as colunas
document.write(''); // Usa estrela como elemento gráfico
}
document.write('</br>'); // Quebra de linha
}

break para terminar (finalizar, sair) do loop

break é usado para terminar (finalizar, sair) do loop atual ou instrução switch. Se não houver break, os case subsequentes continuarão a ser executados (ou seja, ocorre o fenômeno de “penetração”).

A combinação “loop infinito + break” é adequada para situações onde não é necessário verificar a condição no início/fim do loop, mas é necessário verificar a condição no meio ou mesmo em várias posições do corpo.

Exemplo:

let count = 0;
while (true) {
console.log("No loop...");
// Simula uma condição, quando satisfeita, sai do loop
if (count === 5) {
console.log("Condição satisfeita, saindo do loop");
break;
}
count++;
}

continue para continuar a próxima iteração (pular) do loop

continue é usado para terminar prematuramente a iteração atual em um loop e continuar a próxima iteração. continue é a “versão leve” do break. Ele não para o loop inteiro. Em vez disso, para a iteração atual e força o início de uma nova iteração (se a condição permitir).

Exemplo:

for (let i = 0; i < 8; i++) {
if (i % 2 === 0) {
continue; // Quando i módulo 2 for 0, pula a iteração atual e continua a próxima iteração
}
console.log(i);
}
Compartilhar:

Comentários