Node Tips

Escreva uma função que some todos os números de 1 a 100 e exiba o resultado no console.

function somaAteCem() {
    let soma = 0;
    for (let i = 1; i <= 100; i++) {
        soma += i;
    }
    console.log(`A soma de 1 a 100 é: ${soma}`);
}

somaAteCem(); // Deve exibir 5050

Tarefa Extra: Modifique o código para somar números fornecidos pelo usuario

const readline = require('readline/promises');

const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
});

// Função para calcular a soma de um intervalo de números
function somaAte(inicio, fim) {
    let soma = 0;
    for (let i = inicio; i <= fim; i++) {
        soma += i;
    }
    return soma;
}

// Função para obter um número do usuário com tratamento de erro
async function obterNumero(prompt) {
    while (true) {
        const input = await rl.question(prompt);
        console.log(`Valor recebido: "${input}"`);
        const numero = parseInt(input);

        if (input.trim() && !isNaN(numero)) {
            return numero; // Retorna o número válido
        }

        console.log('Erro: Você deve inserir um número válido!');
    }
}

// Função principal para coordenar as interações
async function obterDados() {
    try {
        const number = await obterNumero('Digite um número: ');
        const number2 = await obterNumero('Digite outro número maior que o primeiro: ');

        if (number2 > number) {
            const resultado = somaAte(number, number2);
            console.log(`Resultado da soma de ${number} até ${number2}: ${resultado}`);
        } else {
            console.log('Erro: O segundo número deve ser maior que o primeiro!');
        }
    } catch (error) {
        console.error('Ocorreu um erro inesperado:', error.message);
    } finally {
        rl.close();
    }
}

obterDados();

How i need learn?