Dúvida usando o IF

3 respostas
raisabc

Fiz um exercício que o professor pediu, ele ta pedindo pra transferir 500 reais da contaDoJoao para a contaDaMaria. Fiz isso, mas tem um problema. usei um IF pra informar que se o saldo do joao for menor do que o valor q ele quer transferir, nao realizará a transferencia e exibirá uma mensagem dizendo o q saldo é menor que o valor q ele deseja sacar/transferir. mas tem um probleminha..... eu coloco isso, e mesmo assim ele continua depositando na contaDaMaria os 500 reais. Alguém me ajuda a arrumar por favor???
ai vão as duas coisas q eu fiz, CONTABANCARIA E TESTECONTABANCARIA.

public class ContaBancaria{
 private double Saldo;

 public void depositar (double valor){
 Saldo= valor+Saldo;}
 
 public double sacar (double valor){
 

// Se o usuário tentar sacar um valor maior do que ele tem na conta.
 if (Saldo>= valor){
 Saldo= Saldo-valor;
 
 return valor;}
 
 else
 
  System.out.println("O saldo é inferior ao valor que deseja sacar.");
 
 return 0.0;}

 public double getSaldo(){
 return Saldo;}}
public class TesteContaBancaria{
public static void main(String [] args){

ContaBancaria contaDoJoao=new ContaBancaria();
ContaBancaria contaDaMaria=new ContaBancaria();

contaDoJoao.depositar(1000);
contaDaMaria.depositar(50);

contaDoJoao.sacar(500);
contaDaMaria.depositar(500);

System.out.println("Saldo da conta do Joao é:"+ contaDoJoao.getSaldo());
System.out.println("Saldo da conta da Maria é:"+ contaDaMaria.getSaldo());
}}

Não sei onde e como colocar o IF, nao sei se é pra colocar na ContaBancaria ou no TesteContaBancaria, e eu escrevo o seguinte...

if(Saldo>=500){
	contaDaMaria.depositar(500);
	}
       else
System.out.println("O saldo é inferior ao valor que deseja sacar/transferir);
contaDaMaria.depositar(0);

e continua dando errado!

3 Respostas

panthovillas

o metodo sacar retorna um double…

entao passe o valor do retorno do metodo sacar como parametro para o metoda depositar

contaDaMaria.depositar(contaDoJoao.sacar(500));

ps.: sempre defina variaveis com a inicial minuscula(nomeDeVariavel), é apenas uma boa pratica de programacao. E tb teste as duas variaveis double com o Double.compare(doubleA, doubleB) => se o resultado foi -1 a variavel doubleA é maior, 1 a variavel doubleB é maior e 0 sao iguais.

if (Double.compare(saldo,valor) != 1){  //** neste caso vai entrar no if caso o valor de saldo for maior(-1) ou igual(0).
    saldo= saldo-valor;  
   
    return valor;
} else   
   System.out.println("O saldo é inferior ao valor que deseja sacar."); 
   return 0.0;
}

[]'s

raisabc

Obrigada!!! Valeu mesmoo!!!

[]'s

taaqui

Se for para faculdade pode algo mais simples ^^

Método transferir valor na classe Conta Bancaria, ta so no osso, mais para questão de aprendizado pode dar uma estudada mais nele.

public void transferirValor(ContaBancaria contaDoDeposito, double valor){ if (this.saldo >= valor){ this.sacar(valor); contaDoDeposito.depositar(valor); }else{ System.out.println("Tranferencia não efetuada"); } }

Criado 16 de abril de 2009
Ultima resposta 17 de abr. de 2009
Respostas 3
Participantes 3