Bom dia, José! Tudo bem?
Testei seu código e ele até retorna false mas apenas se o x
for menor ou igual a zero. Acredito que isso está acontecendo pois você passa diversos argumentos (por exemplo, maior(x, y)
) para a função maior(m)
que espera receber apenas um, então ele está considerando apenas a primeira informação (no caso o x).
Também vejo que você está usando a função maior() recebendo o próprio resultado dela na linha 3: maior(ler_entrada(entrada1, entrada2));
. Nesse trecho está acontecendo isso:
- Imagine que
entrada1 = 2
e entrada2 = 0
- O código recebeu para fazer o comando
maior(ler_entrada(entrada1, entrada2))
- Primeiramente, o código vai fazer
ler_entrada(entrada1, entrada2)
, que vai retornar maior(x, y);
- Esse
maior()
está esperando receber apenas uma informação, como citei antes. Nosso x é maior que zero, então irá retornar true
. Consequentemente, o valor de ler_entrada()
será true. - Substituindo o
ler_entrada(entrada1, entrada2)
pelo valor retornado, vamos ter: maior(true)
. Isso irá verificar se true > 0, e isso é verdadeiro.
Podemos resolver retirando essa repetição de verificar se o número é maior ou igual a zero, fazendo a função positivos()
só chamar a função ler_entrada()
. Desse jeito:
function positivos(entrada1, entrada2, saida) {
document.getElementById(saida).innerHTML =
"O resultado é " + ler_entrada(entrada1, entrada2);
}
Também precisamos ajustar para a função maior()
aceitar dois valores, para funcionar a verificação de x e y:
function maior(x, y) {
return m > 0;
}
Ainda assim, como fazer ele retornar false caso x ou y seja menor ou igual a zero? Conseguimos usar isso usando o operador lógico && (AND).
function maior(x, y) {
return (x > 0 && y > 0);
}
Esse operador lógico (&&) retornará true se ambos os casos forem true, se não, retornará false. No caso, se algum deles for menor ou igual a zero, o resultado é false.
Ajustando isso, seu código irá retornar false se pelo menos um dos dois valores passados como entrada for menor ou igual a zero.
Espero ter ajudado a ficar mais claro de como prosseguir com seu código, qualquer coisa pode me questionar ou nos procurar aqui pelo fórum, pode contar conosco!
Bons estudos!