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

Condição

Não entendo porque o seguinte codigo "if (valorASerSacado <= this.saldo && valorASerSacado >= 0)" é o certo na questão.

4 respostas

Olá Leandro, qual parte você não entendeu?

solução!

Olá Leandro, porque nesse caso as duas partes da condição precisam ser verdadeiras para que a operação de saque seja realizada, o valorASerSacado não pode ser negativo e não pode ser maior que o saldo atual. Por isso usamos o &&, se for usado o || e uma das condições não for aceita mas a outra sim o saque é realizado do mesmo jeito, isso permitiria por exemplo que a pessoa saque um valor maior que a do saldo atual uma vez que a condição de que o valor sacado seja maior que 0 é verdadeira. Pelo menos foi isso que entendi, me corrijam caso esteja errado.

Isso mesmo, Henrique!

E se deixarmos que o valorASerSacado fosse negativo, poderia ter um comportamento parecido com um depósito (dependendo da implementação).

Sempre precisamos tomar cuidado com essas validações! (:

Gostaria de colocar apenas mais um adendo a está questão.

Talvez tenha sido este o motivo que gerou dúvida. A opção de escolha do exercício tem uma pequena inconsistência. Dando a entender que pode-se sacar o valor 0 (zero) com a seguinte condição:

if (valorASerSacado <= this.saldo && valorASerSacado >= 0)
{
    //implementação do saque...
}

Entretanto, uma possível solução para correção desta questão pode ficar da seguinte forma:

if (valorASerSacado <= this.saldo && valorASerSacado > 0)
{
    //implementação...
}

Ou seja, o saldo tem de ser maior que o valor que vai ser sacado, e, o valor que será sacado tem de ser maior que 0 (zero). É apenas um pequeno ajuste que acho que deveria ser feito.