1
resposta

[Dúvida] Desafio calculadora + realizar novamente

Olá,

Finalizei o desafio da calculadora e ficou desta forma:


let numeroUm = parseInt(prompt('Qual seu primeiro numero?'));
let numeroDois = parseInt(prompt('E o segundo?'));
let determinaOperacao = prompt('Qual operação deseja? Escolha 1 para adição, 2 para sutração, 3 para divisão ou 4 para multiplicacao')

const jogarNovamente = function(){
if(confirm('deseja realizar outra operação?')){
    return
}else{
    alert('Obrigado por participar');
}

}
function adicao(){
 let soma = numeroUm += numeroDois;
 alert(soma);
}

function subtracao(){
    let subtrai = numeroUm - numeroDois;
    alert(subtrai);
}

function divisao(){
    let divide = numeroUm / numeroDois;
    alert(divide);
}

function multiplicacao(){
    let multiplica = numeroUm * numeroDois;
    alert(multiplica)
}

if (determinaOperacao == 1){
  adicao()
} else if (determinaOperacao == 2){
  subtracao()
}else if (determinaOperacao == 3){
   divisao()
}else if (determinaOperacao == 4){
  multiplicacao()
}

jogarNovamente();


/* 1 add, 2 sub, 3 divi, 4 multi*/

Percebam que comecei a implementar um sistema onde me gere a possibilidade realizar uma nova operação, fiz a function Expression para executar a pergunta de fazer novamente, afim de só declará-la quando acabassem os blocos condicionais, porém, travei na parte de fazer ela retomar todo o script desde o início se for confirmado pelo usuário, alguém pode me ajudar?

1 resposta

Olá João! Como vai?

Que legal que você está se desafiando com a implementação da calculadora!

Para que o script possa reiniciar e permitir que o usuário realize outra operação, podemos ajustar a função jogarNovamente para que ela chame a função principal que engloba todo o processo de solicitar números e a operação. Vou te mostrar como você pode fazer isso:

Primeiro, encapsule todo o código que realiza a operação dentro de uma função, por exemplo, calculadora. Assim, você pode chamar essa função novamente sempre que o usuário desejar realizar outra operação. Veja como pode ficar:

function calculadora() {
    let numeroUm = parseInt(prompt('Qual seu primeiro numero?'));
    let numeroDois = parseInt(prompt('E o segundo?'));
    let determinaOperacao = prompt('Qual operação deseja? Escolha 1 para adição, 2 para subtração, 3 para divisão ou 4 para multiplicação');

    function adicao() {
        let soma = numeroUm + numeroDois;
        alert(soma);
    }

    function subtracao() {
        let subtrai = numeroUm - numeroDois;
        alert(subtrai);
    }

    function divisao() {
        let divide = numeroUm / numeroDois;
        alert(divide);
    }

    function multiplicacao() {
        let multiplica = numeroUm * numeroDois;
        alert(multiplica);
    }

    if (determinaOperacao == 1) {
        adicao();
    } else if (determinaOperacao == 2) {
        subtracao();
    } else if (determinaOperacao == 3) {
        divisao();
    } else if (determinaOperacao == 4) {
        multiplicacao();
    }

    jogarNovamente();
}

function jogarNovamente() {
    if (confirm('Deseja realizar outra operação?')) {
        calculadora();
    } else {
        alert('Obrigado por participar');
    }
}

calculadora();

Neste exemplo, a função calculadora é chamada inicialmente e, após a execução de uma operação, a função jogarNovamente pergunta ao usuário se ele deseja realizar outra operação. Se a resposta for positiva, a função calculadora é chamada novamente, reiniciando o processo.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!