Ir ao conteúdo
  • Cadastre-se

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

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
Link para o comentário
Compartilhar em outros sites

  • Solução
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
Link para o comentário
Compartilhar em outros sites

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...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!