Não entendo porque o seguinte codigo "if (valorASerSacado <= this.saldo && valorASerSacado >= 0)" é o certo na questão.
Não entendo porque o seguinte codigo "if (valorASerSacado <= this.saldo && valorASerSacado >= 0)" é o certo na questão.
Olá Leandro, qual parte você não entendeu?
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.