Ir ao conteúdo

Java Erro de lógica ou na linguagem em si? Exercício de conta bancária em Java


Ir à solução Resolvido por Gaq,

Posts recomendados

Postado

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.

 

 

  • Curtir 1
  • Solução
Postado
1 hora atrás, qwerty78987 disse:
if(saque = true)

Nessa condição aqui você n está comparando o valor de saque com o booleano true, e sim atribuindo true ao atributo. Para comparar se saque é igual a true ficaria dessa forma:

if(saque == true)

 

  • Obrigado 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...