Da trilha de JavaScript Este conceito ainda não saiu como card do dia. ir para o card de hoje

JavaScript Controle de fluxo Básico

Controle de fluxo

O controle de fluxo é o que permite que um programa tome decisões e repita tarefas. Em JavaScript, as principais estruturas condicionais são if (e else) e switch, enquanto os laços de repetição incluem for, for...of, for...in e while. Dominar essas ferramentas é essencial para escrever código que reage a diferentes situações.

O if avalia uma condição booleana e executa um bloco se for verdadeira. O switch é útil quando temos muitos casos discretos baseados no valor de uma expressão. Já os laços permitem iterar sobre arrays, objetos ou repetir enquanto uma condição for válida.

O for clássico é ótimo quando sabemos o número de iterações ou precisamos do índice. O for...of percorre valores de iteráveis (como arrays e strings), e o for...in percorre chaves de objetos. O while repete enquanto a condição for verdadeira, sendo ideal quando não sabemos quantas vezes vamos iterar.

As palavras-chave break e continue alteram o fluxo dentro dos laços: break encerra o laço imediatamente, e continue pula para a próxima iteração. Usá-las com moderação mantém o código legível e eficiente.

Pontos-chave

  • if e switch escolhem caminhos com base em condições ou valores.
  • for clássico dá controle total sobre índice e incremento.
  • for...of itera sobre valores de arrays e strings; for...in itera sobre chaves de objetos.
  • while repete enquanto a condição for verdadeira, útil quando o número de iterações é incerto.
  • break sai do laço; continue pula para a próxima iteração.
controle_fluxo.js
// Exemplo de controle de fluxo em JavaScript

// if / else if / else
const hora = 14;
if (hora < 12) {
  console.log('Bom dia!');
} else if (hora < 18) {
  console.log('Boa tarde!');
} else {
  console.log('Boa noite!');
}

// switch
const diaSemana = 3;
switch (diaSemana) {
  case 1:
    console.log('Segunda');
    break;
  case 2:
    console.log('Terça');
    break;
  case 3:
    console.log('Quarta');
    break;
  default:
    console.log('Outro dia');
}

// for clássico
for (let i = 1; i <= 3; i++) {
  console.log(`Contagem: ${i}`);
}

// for...of (valores de um array)
const frutas = ['maçã', 'banana', 'uva'];
for (const fruta of frutas) {
  console.log(`Fruta: ${fruta}`);
}

// for...in (chaves de um objeto)
const pessoa = { nome: 'Ana', idade: 28 };
for (const chave in pessoa) {
  console.log(`${chave}: ${pessoa[chave]}`);
}

// while
let contador = 0;
while (contador < 3) {
  console.log(`While: ${contador}`);
  contador++;
}

// break e continue
for (let i = 1; i <= 5; i++) {
  if (i === 3) continue; // pula o 3
  if (i === 5) break;    // para no 5
  console.log(`Número: ${i}`);
}

Exercícios

  1. 1
    Fácil

    Classificador de idade

    Escreva um programa que, dada a variável idade (número), use if/else if/else para imprimir:

    • 'Criança' se idade < 12
    • 'Adolescente' se 12 <= idade < 18
    • 'Adulto' se idade >= 18

    Use console.log para exibir o resultado.

    Resolver
  2. 2
    Médio

    Soma dos números pares

    Escreva um programa que percorra um array de números usando for...of e some apenas os números pares. Imprima a soma final. Considere o array [1, 2, 3, 4, 5, 6, 7, 8, 9, 10].

    Resolver
  3. 3
    Desafio

    Jogo de adivinhação com while e break

    Implemente um jogo de adivinhação. O programa deve sortear um número secreto entre 1 e 100 e permitir que o usuário tente adivinhar. Como não há entrada interativa, simule uma sequência de palpites em um array palpites (ex.: [50, 75, 88, 93, 95]). Use um laço while para percorrer os palpites até acertar ou esgotá-los. Para cada palpite:

    • Se for menor que o secreto, imprima 'Muito baixo!' e continue.
    • Se for maior, imprima 'Muito alto!' e continue.
    • Se for igual, imprima 'Acertou!' e use break para encerrar.

    Se os palpites acabarem sem acerto, imprima 'Não acertou. O número era X' (X é o secreto). Use Math.random() para gerar o número secreto, mas para este exemplo, fixe o secreto em 93 para que a saída seja determinística.

    Resolver

Continue estudando