Ir ao conteúdo

Posts recomendados

Postado

Na hora de fazer a conta está dando erro, não entendi porque

import java.util.Scanner;
class Conta {
    public String titular;
    public double saldo;
    public double saque;
        
        public void saque(double valor ) {
         if (saldo  >= valor  ) {
            System.out.println("retirada  " + valor);
            saldo = saldo - valor ;
         }
         else {
           System.out.println("saldo insuficiente para a retirada de  " + valor);
          }
    }


    public String extratoSimples() {
         return "correntista  " + titular + " saque " + saque + " valor atual da conta  " + saldo ;
        }

}


public class ProgramaAgencia {
  public static void main(String args[]) {
 
      Scanner entradaDados = new Scanner( System.in );

Conta contaUm = new Conta();

System.out.print( " Digite o nome do titular: ");

contaUm.titular = entradaDados.nextLine();


System.out.print( " Digite o saldo da conta: ");

contaUm.saldo = entradaDados.nextDouble();


System.out.print( " Digite o valor do saque: ");

contaUm.saque = entradaDados.nextDouble();

         System.out.println(contaUm.extratoSimples() );

      }
}

Funciona.png

Postado

Que confusão que você fez com esse negócio de valor...

 

1- substitui tudo que está escrito 'valor' por 'saque' e retire os parametros da função saque (que deveria ter um nome diferente da variavel mas tudo bem). Assim ficaria:

public void saque() { if (saldo >= saque ) { System.out.println("retirada " + saque); }

 

2- inclua static em todas as variáveis, assim fica: "public static double saldo;" etc.


3- se livra dessa função extrato simples();

 

4- na classe principal, depois da linha "contaUm.saque = entradaDados.nextDouble();" você vai criar um double novo que receba o valor do saldo-saque.
Exemplo: "double sFinal = saldo - saque;"

 

5- Ainda na classe principal, depois de que foi feito no "4", ao invés de chamar a função "contaUm.extratoSimples()", você vai printar o que estava nessa função que apagou. Dando um fork no seu código, ficaria:


System.out.println("correntista " + titular + " saque " + saque + " valor atual da conta " + sFinal);

Eu testei aqui no IntelliJ e está funcionando perfeitamente. Infelizmente não posso dar o código todo diretamente, devido as regras do forum, mas com essas dicas acho que deu pra entender, qualquer coisa manda o código modificado de novo e a gente tenta ver o que deu errado.

Postado

Um exemplo mais funcional para a classe Conta poderia assim:

public class Conta {

  private double saldo;

  
  public Conta() {
    this(0.0);
  }

  public Conta(double saldo) {
    this.saldo = saldo;
  }

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

  public void sacar(double valor) {
    if(saldo >= valor) {
      saldo -= valor;
    } else {
      System.err.println("Saldo insuficiente para realizar o saque.");
    }
  }
}

 

  • Curtir 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

Mostrar 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

Mostrar mais  
×
×
  • Criar novo...