0Pricing
JavaScript Academy · Aula

E1 — Avaliador de expressões (parte 1: + e - da esquerda para a direita)

Implemente um pequeno avaliador que trate + e - da esquerda para a direita. Separe dígitos e operadores, ignore espaços e adicione guardas simples

E1 — Avaliador de expressões (parte 1: + e - da esquerda para a direita) é uma aula grátis de JavaScript Academy no CoddyKit. Esta é a aula 1 de 3. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de JavaScript Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de JavaScript Academy inclui 3 aulas no total.

O que será criado

Objetivo: Avaliar pequenos textos matemáticos usando apenas + e -.

  • Transformar números e operadores em tokens
  • Ignorar espaços
  • Calcular da esquerda para a direita
  • Adicionar verificações simples de erro
E1 — Avaliador de expressões (parte 1: + e - da esquerda para a direita) — ilustração 1

Analisador de tokens: números e operadores

O analisador de tokens cria números a partir dos dígitos e retorna um vetor como [12, "+", 3, "-", 4].

// Tokenize: split into numbers and operators; ignore spaces
function tokenize(expr) {
  if (typeof expr !== "string") return null;

  const tokens = [];
  let num = "";

  for (let i = 0; i < expr.length; i = i + 1) {
    const ch = expr[i];

    if (ch === " ") {
      // skip spaces
      continue;
    }

    if (ch >= "0" && ch <= "9") {
      // build number
      num = num + ch;
    } else if (ch === "+" || ch === "-") {
      // flush pending number
      if (num.length > 0) {
        tokens.push(Number(num));
        num = "";
      }
      tokens.push(ch);
    } else {
      // unsupported character
      return null;
    }
  }

  if (num.length > 0) tokens.push(Number(num));
  return tokens;
}

console.log("tokens:", tokenize("12 + 3 - 4"));
E1 — Avaliador de expressões (parte 1: + e - da esquerda para a direita) — ilustração 2

Avaliação da esquerda para a direita (+/-)

Calcule da esquerda para a direita. Ainda não tratamos precedência nem parênteses.

// Evaluate tokens left-to-right for + and - only
function evalPlusMinus(tokens) {
  if (!Array.isArray(tokens) || tokens.length === 0) return null;

  // result starts with first number
  let acc = tokens[0];
  if (typeof acc !== "number") return null;

  // step through [op, num] pairs
  for (let i = 1; i < tokens.length; i = i + 2) {
    const op = tokens[i];
    const val = tokens[i + 1];

    if ((op !== "+" && op !== "-") || typeof val !== "number") {
      return null;
    }

    if (op === "+") acc = acc + val;
    else acc = acc - val;
  }

  return acc;
}

console.log("eval 10-3-2:", evalPlusMinus([10, "-", 3, "-", 2]));
E1 — Avaliador de expressões (parte 1: + e - da esquerda para a direita) — ilustração 3

Invólucro seguro

Crie um invólucro seguro que retorne um valor ou uma pequena cadeia de caracteres de erro para iniciantes.

// Glue the pieces: from string to result
function evalExprSimple(expr) {
  const tokens = tokenize(expr);
  if (tokens === null) {
    return { ok: false, error: "Invalid character" };
  }
  const result = evalPlusMinus(tokens);
  if (typeof result !== "number") {
    return { ok: false, error: "Invalid sequence" };
  }
  return { ok: true, value: result };
}

console.log("12 + 3 - 4 =", evalExprSimple("12 + 3 - 4"));
console.log("bad char   =", evalExprSimple("2 + a"));
E1 — Avaliador de expressões (parte 1: + e - da esquerda para a direita) — ilustração 4

Execute casos pequenos

Mantenha os exemplos pequenos. Adicionaremos precedência, parênteses e o sinal de menos unário em partes posteriores.

// A few quick checks
const cases = [
  "0-3",
  "7+5",
  "10-3-2",
  "2 + 2 + 2",
  "9 - 1 + 1"
];

for (const c of cases) {
  const r = evalExprSimple(c);
  console.log(c, "=>", r.ok ? r.value : r.error);
}

// Note: unary minus (like "-3+2") not handled yet
// This simple version expects a number first
E1 — Avaliador de expressões (parte 1: + e - da esquerda para a direita) — ilustração 5

Orientações para iniciantes

Dicas:

  • Comece com um escopo pequeno, apenas + e -.
  • Retorne erros pequenos em vez de lançar exceções.
  • Escreva pequenos auxiliares, como tokenize e eval.
  • Adicione os recursos passo a passo.
E1 — Avaliador de expressões (parte 1: + e - da esquerda para a direita) — ilustração 6

Questionário sobre o comportamento da avaliação da esquerda para a direita

Verificação rápida: resultado da esquerda para a direita.

E1 — Avaliador de expressões (parte 1: + e - da esquerda para a direita) — ilustração 7

Recapitulação

Recapitulação: Transforme números e +/- em tokens, ignore espaços e avalie da esquerda para a direita. Retorne erros pequenos. Próximo: precedência e parênteses.

E1 — Avaliador de expressões (parte 1: + e - da esquerda para a direita) — ilustração 8

Perguntas Frequentes

A aula “E1 — Avaliador de expressões (parte 1: + e - da esquerda para a direita)” é grátis?

Sim — o texto completo de “E1 — Avaliador de expressões (parte 1: + e - da esquerda para a direita)” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de JavaScript Academy, atualize para CoddyKit PRO. O curso de JavaScript Academy inclui 3 aulas no total.

O que vou aprender em “E1 — Avaliador de expressões (parte 1: + e - da esquerda para a direita)”?

Implemente um pequeno avaliador que trate + e - da esquerda para a direita. Separe dígitos e operadores, ignore espaços e adicione guardas simples Você pratica JavaScript Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar JavaScript Academy?

Nenhuma experiência prévia é necessária. JavaScript Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 3.

Quanto tempo leva a aula “E1 — Avaliador de expressões (parte 1: + e - da esquerda para a direita)”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de JavaScript Academy?

Sim. Cada aula de JavaScript Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. E1 — Avaliador de expressões (parte 1: + e - da esquerda para a direita)
  2. E2 — Analisador de registros (filtros e contadores simples)
  3. E3 — Pool/fila de Promises (concorrência assíncrona)
← Voltar para JavaScript Academy