1
resposta

[Projeto] Desafio 3 - Calculadora

Gostaria obter opinião sobre o código

/*
Escreva um programa de calculadora simples com funções
 separadas para adição, subtração, multiplicação e divisão. 
 Utilize um bloco condicional para determinar qual função executar com base em uma variável que representa a operação desejada.
*/
operadores = ["+","-","*","/"]
let numero1=parseFloat(prompt("Digite o primeiro numero"));
let buscaOperador=prompt("digite um operador");


while ((!operadores.includes(buscaOperador)))
{
        alert("Digite um numero maior ou um dos operadores: +,-,*,/")
        
}

let numero2=parseFloat(prompt("Digite o segundo numero"));

function adicao(numero1, numero2) {
    return numero1 + numero2;
}

function subtracao(numero1, numero2) {
    return numero1 - numero2;
}

function multiplicacao(numero1, numero2) {
    return numero1 * numero2;
}

function divisao(numero1, numero2) {
    if (numero2 !== 0) {
        return numero1 / numero2;
    } else {
        return "Erro: divisão por zero.";
    }
}

function calculadora(buscaOperador, numero1, numero2) {
    switch (buscaOperador) {
        case '+':
            return adicao(numero1, numero2);
        case '-':
            return subtracao(numero1, numero2);
        case '*':
            return multiplicacao(numero1, numero2);
        case '/':
            return divisao(numero1, numero2);
        default:
            return "Operação inválida.";
    }
   
}
    let total = calculadora(buscaOperador, numero1, numero2);
    alert(`Resultado: ${total}`);
1 resposta

Olá Ivan! Tudo certo?

Seu código para a calculadora está muito bem estruturado! Você já implementou as funções para cada operação matemática e está utilizando um bloco condicional switch para determinar qual função executar, o que está de acordo com o que foi pedido no desafio.

Aqui estão algumas sugestões para melhorar ainda mais o seu código:

  1. Validação de Entrada: No momento, você está validando apenas o operador. Seria interessante adicionar uma verificação para garantir que os números inseridos pelo usuário sejam válidos. Você pode fazer isso verificando se numero1 e numero2 são NaN (Not-a-Number) após a conversão com parseFloat.

    let numero1 = parseFloat(prompt("Digite o primeiro numero"));
    while (isNaN(numero1)) {
        alert("Por favor, digite um número válido.");
        numero1 = parseFloat(prompt("Digite o primeiro numero"));
    }
    
  2. Validação de Divisão por Zero: Você já está tratando a divisão por zero dentro da função divisao, o que é ótimo. Apenas certifique-se de que a mensagem de erro esteja clara para o usuário.

  3. Repetição de Entrada: No loop while que verifica o operador, seria interessante permitir que o usuário insira novamente o operador, caso tenha digitado algo inválido. Atualmente, o loop apenas exibe uma mensagem de erro sem permitir a correção.

    let buscaOperador = prompt("Digite um operador");
    while (!operadores.includes(buscaOperador)) {
        alert("Digite um dos operadores válidos: +, -, *, /");
        buscaOperador = prompt("Digite um operador");
    }
    

Essas pequenas melhorias podem tornar a experiência do usuário mais amigável e o seu programa mais robusto.

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.