Olá, estou fazendo um exercício de Java onde tenho que fazer uma conta bancária. Fiz um método para sacar, porém não está funcionando. A classe main está assim(coloquei só as partes relevantes, para resumir):
Conta_Corrente obj_cc = new Conta_Corrente();
obj_cc.defineNumConta(123);
obj_cc.defineSaldo(1000);
obj_cc.defineLimiteAtual(1500);
case 1:{//Saque
System.out.println("Digite o valor a ser sacado.");
double valor = entrada.nextDouble();
boolean saque = obj_cc.sacar(valor);
if(saque = true) {
System.out.println("Você sacou R$ " + valor);
//System.out.println("Seu saldo é R$ " + saldo);
}else {
System.out.println("Não foi possível efetuar seu saque");
}
break;
}
Na classe Conta_Corrente.java está assim(só as partes relevantes, para resumir):
private int NumConta;
private double saldo;
private double limiteAtual;
private double limiteInicial = 500;
boolean sacar(double valor) {
if(valor<(saldo+limiteAtual)) {
if(valor>=saldo) {
limiteAtual = limiteAtual - (valor - saldo);
saldo=0;
}
else {
saldo = saldo - valor;
}
return true;
}
else {
return false;
}
}
Os limites são relativos ao cheque especial(empréstimo). Defini o limite inicial como 500, e o limite atual receberá ele próprio menos o valor do saque menos o saldo da conta, caso o valor do saque seja maior do que o saldo. Se não for maior do que o saldo, saldo recebe saldo - valor.
Após isso ele deve retornar verdadeiro.
Se o valor do saque for maior do que o saldo e o limite do cheque especial, deve retornar falso.
Porém, não importa o valor que eu digite, ele sempre retorna true(Aparecendo Você sacou R$ X no console), independentemente do valor de saque colocado, se é acima ou abaixo do limite atual mais saldo.
Não entendo o que há de errado, se alguém puder me ajudar agradeço.