1
resposta

Desafio Conta bancaria

Bom dia pessoal , gostaria de saber qual o erro no meu código Sempre que faço o deposito ou saco o valor , quando eu vou verificar o saldo atual ele volta no inicio do valor !

import java.util.Scanner;

public class ContaBancaria {
    public static void main(String[] args) {
        int saldoBancario = 2500;
        boolean tipoConta;
        int recebValue;
        int sair = 4;
        int opcao = 0;
        int transfValue;
        Scanner leitura = new Scanner(System.in);

        String dados = """
                ***********************
                Dados iniciais do cliente:
                                
                Nome : Victor Oliveira
                Tipo conta: Corrente
                Saldo inicial: R$ 2500,00
                ***********************
                                
                Operações
                                
                1 - Consultar saldo
                2 - Receber valor
                3 - Transferir valor
                4 - Sair
                """;
        System.out.println(dados);

        while (opcao != sair) {
            System.out.println(" Digite a opção desejada");

            opcao = leitura.nextInt();


            if (opcao > 5 || opcao < 1) {
                System.out.println("Opção invalida");
            }
            if (opcao == 1) {
                System.out.println("O saldo atual é " + saldoBancario);
            }
            if (opcao == 2) {
                System.out.println("Qual valor você deseja depositar?");
                recebValue = leitura.nextInt();
                int saldoDeposito = saldoBancario + recebValue;
                System.out.println("O saldo atual é " + saldoDeposito);
            }

            if (opcao == 3) {
                System.out.println("Qual valor você deseja sacar?");
                transfValue = leitura.nextInt();
                if (transfValue > saldoBancario) {
                    System.out.println("Saldo insuficiente");
                } else {
                    saldoBancario = saldoBancario - transfValue;
                    System.out.println("O Saldo atual é: " + saldoBancario);
                }
            }

            if (opcao == 4) {
                System.out.println("Sessão foi encerrada");
                break;

            }


        }
    }}

1 resposta

Bom dia Victor, tudo bem?

O comportamento que não queremos que aconteça está nesse trecho de código:

if (opcao == 2) {
                System.out.println("Qual valor você deseja depositar?");
                recebValue = leitura.nextInt();
                int saldoDeposito = saldoBancario + recebValue;
                System.out.println("O saldo atual é " + saldoDeposito);
            }

bom, aqui podemos perceber que você está criando uma nova variavel saldoDeposito do tipo int e atribuindo o novo valor para ela, o correto seria atribuirmos o valor a variavel saldoBancario que representa o saldo da conta. Então ficaria assim:

if (opcao == 2) {
                System.out.println("Qual valor você deseja depositar?");
                recebValue = leitura.nextInt();
                saldoBancario = saldoBancario + recebValue;
                System.out.println("O saldo atual é " + saldoDeposito);
            }

dessa maneira vai funcionar do modo que você deseja :)

Espero ter ajudado, bons estudos!