1
resposta

Bizarramente fiz errado


```import java.util.Scanner;

public class contaBanco {
    static void main() {
        Scanner sc = new Scanner(System.in);
         double saldoInicial = 1844.50;

        System.out.println("***********************");
        System.out.println("Dados iniciais do cliente:\n" +
                "\n" +
                "Nome: Jacqueline Oliveira\n" +
                "Tipo conta: Corrente\n" +
                "Saldo inicial: R$" +saldoInicial);

        int num = 0;

        while (num != 4) {
            System.out.println("\nOperações: \n");
            System.out.println("1- Consultar saldos\n" + "2- Receber valor\n" + "3- Transferir valor\n" + "4- Sair\n");
            System.out.println("Digite a opção desejada: \n");
            num = sc.nextInt();


            switch (num) {
                case 1:
                    System.out.println("Seu saldo é: R$" + saldoInicial);
                    break;
                case 2:
                    System.out.println("Informe o valor a receber: ");
                    double novoSaldo = sc.nextDouble();
                    double saldoAtualizado = saldoInicial + novoSaldo;
                    System.out.printf("Saldo atualizado: R$" +saldoAtualizado);
                    break;
                case 3:
                    System.out.println("Informe o valor que deseja transferir: ");
                    double saldoRetirado = sc.nextDouble();
                    double saldoAtt = saldoInicial - saldoRetirado;
                    System.out.printf("\nSaldo atualizado: R$" +saldoAtt);
                    break;
                case 4:
                    System.out.println("\nSaindo...");
                    break;
                default:
                    System.out.println("\nOpção inválida!!"); 

            }
        }











    }
}
1 resposta

Bom dia;

O código está quase lá, mas tem alguns errinhos clássicos que explicam por que “bizarramente” não funcionou como esperado. Vou apontar o que está errado, por quê, e como ajustar, sem complicar.

main está declarado errado

Em Java, o método principal precisa ser exatamente assim:

public static void main(String[] args)

No seu código está só:

static void main()

Assim o programa nem executa.

O saldo nunca é atualizado de verdade

Você cria variáveis novas (saldoAtualizado, saldoAtt), mas não altera saldoInicial.

Ou seja:

  • Você soma
  • Mostra o valor
  • Mas o saldo original continua o mesmo

O correto é atualizar o próprio saldo.

Errado:

double saldoAtualizado = saldoInicial + novoSaldo;

Certo:

saldoInicial += novoSaldo;

Falta validação de saldo na transferência

O desafio pede que, se o valor for maior que o saldo, apareça a mensagem:

Não há saldo suficiente para fazer essa transferência.

Isso precisa de um if.

Classe deveria começar com letra maiúscula

Não quebra o código, mas é padrão Java:

public class ContaBanco

Versão corrigida (simples e alinhada ao desafio)

import java.util.Scanner;

public class ContaBanco {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        double saldo = 1844.50;
        int opcao = 0;

        System.out.println("***********************");
        System.out.println("Dados iniciais do cliente:\n");
        System.out.println("Nome: Jacqueline Oliveira");
        System.out.println("Tipo conta: Corrente");
        System.out.println("Saldo inicial: R$ " + saldo);
        System.out.println("***********************");

        while (opcao != 4) {
            System.out.println("\nOperações:");
            System.out.println("1- Consultar saldos");
            System.out.println("2- Receber valor");
            System.out.println("3- Transferir valor");
            System.out.println("4- Sair");
            System.out.print("Digite a opção desejada: ");

            opcao = sc.nextInt();

            switch (opcao) {
                case 1:
                    System.out.println("Seu saldo é: R$ " + saldo);
                    break;

                case 2:
                    System.out.print("Informe o valor a receber: ");
                    double valorRecebido = sc.nextDouble();
                    saldo += valorRecebido;
                    System.out.println("Saldo atualizado: R$ " + saldo);
                    break;

                case 3:
                    System.out.print("Informe o valor que deseja transferir: ");
                    double valorTransferencia = sc.nextDouble();

                    if (valorTransferencia > saldo) {
                        System.out.println("Não há saldo suficiente para fazer essa transferência.");
                    } else {
                        saldo -= valorTransferencia;
                        System.out.println("Saldo atualizado: R$ " + saldo);
                    }
                    break;

                case 4:
                    System.out.println("Saindo...");
                    break;

                default:
                    System.out.println("Opção inválida!");
            }
        }

        sc.close();
    }
}

O mais importante

Você entendeu a lógica, só tropeçou em:

  • atualização de variável
  • assinatura do main
  • validação com if

Isso é sinal de aprendizado, não de erro grave.