Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

problema com lógica de programação

Quando utilizo a primeira e a terceira combinação que esta comentada no código, funciona normalmente. entretanto quando uso a segunda combinação de números, ele mostra como se o menor número digitado fosse o 8 e não o 5. poderiam me explicar o motivo disso e como corrigir?

<script>

var num1 = parseInt(prompt("Digite o primeiro número"));
var num2 = parseInt(prompt("Digite o segundo número: "));
var num3 = parseInt(prompt("Digite o terceiro número: "));
var maiorN = 0;
var menorN = 0; 


// 5 8 9 // 8 9 5 // 9 5 8 

if(num1 > num2) {
 maiorN = num1;
}else if(num2 > num3){
    maiorN = num2;
}else{
    maiorN = num3;
}

if(num1 < num2 ){
    menorN = num1;
}else if(num2 < num3 ){
    menorN = num2;
}else{
    menorN = num3;
}


document.write("O maior número é: " + maiorN);
document.write("<br>");
document.write("O menor número é: " + menorN);

</script>
2 respostas

Olá Vinícius, tudo certo?

Vamos avaliar dessa maneira, que o resultado não é o esperado, onde:

var num1 = 8;
var num2 = 9;
var num3 = 5;

e a função é:

if(8 < 9 ){             ->TRUE
    menorN = 8;
}else if(9 < 5){    
    menorN = num2;
}else{
    menorN = num3;
}

Como a primeira condição é true, o if termina, ele não continua. Portanto a variável menorN é igual a 8. Você teria que tentar escrever o seu código de outro jeito. Espero ter ajudado.

solução!

Uma das possíveis maneiras de escrever o código para solucionar o problema (explicação no código):

// 5 8 9 // 8 9 5 // 9 5 8 

//verifica qual dos dois primeiros números é maior e o coloca em uma variável
if(num1 > num2) {
maiorN = num1;
}else {
    maiorN = num2;
}
//verifica qual é o maior entre o resultado dos dois primeiros e o terceiro
if (maiorN < num3){
    maiorN = num3;
}

//Mesma lógica do maior número
if(num1 < num2 ){
    menorN = num1;
} else {
    menorN = num2;
}

if (menorN > num3){
    menorN = num3;
}