Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Projeto] Minha resolução

import java.util.Scanner;

public class ContaBancaria {
    public static void main(String[] args) {
        String clienteNome;
        String tipoConta;
        double saldoAtual;
        int opcaoMenu = 0;

        Scanner scanner = new Scanner(System.in);

        System.out.println("Seja bem-vindo ao KBank, informe os seus dados para continuar\n");

        System.out.print("Digite seu nome: ");
        clienteNome = scanner.nextLine();

        System.out.print("Digite o tipo de conta bancária: ");
        tipoConta = scanner.nextLine();

        while (!tipoConta.equalsIgnoreCase("conta corrente")) {
            System.out.println("Tipo de conta inválido, tente novamente\n");
            System.out.print("Digite o tipo de conta bancária: ");
            tipoConta = scanner.nextLine();
        }

        System.out.print("Digite seu saldo inicial: ");
        saldoAtual = scanner.nextDouble();

        String menuOperacoes = """
                ***********************
                Dados iniciais do cliente:
                Nome: %s
                Tipo de conta: %s
                Saldo inicial: R$ %.2f

                Operações:
                1- Consultar saldo
                2- Depositar valor
                3- Transferir valor
                4- Sair
                ***********************
                """.formatted(clienteNome, tipoConta, saldoAtual);

        while (opcaoMenu != 4) {
            System.out.println(menuOperacoes);
            System.out.print("Digite a opção desejada: ");
            opcaoMenu = scanner.nextInt();

            switch (opcaoMenu) {
                case 1:
                    System.out.printf("O saldo atual é: R$ %.2f%n", saldoAtual);
                    break;

                case 2:
                    System.out.print("Informe o valor a depositar: ");
                    double valorDeposito = scanner.nextDouble();
                    saldoAtual += valorDeposito;
                    System.out.printf("Depósito realizado com sucesso! Saldo atual: R$ %.2f%n", saldoAtual);
                    break;

                case 3:
                    System.out.print("Informe o valor a ser transferido: ");
                    double valorTransferencia = scanner.nextDouble();
                    if (saldoAtual < valorTransferencia) {
                        System.out.println("Transferência não realizada. Saldo insuficiente.");
                    } else {
                        saldoAtual -= valorTransferencia;
                        System.out.printf("Transferência realizada com sucesso! Saldo atual: R$ %.2f%n", saldoAtual);
                    }
                    break;

                case 4:
                    System.out.printf("Saindo, volte sempre %s!%n", clienteNome);
                    break;

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

        scanner.close();
    }
}
1 resposta
solução!

Oi, Kevin! Como vai?

Gostei de como você estruturou o menu de operações e usou formatted() para formatar a saída. Isso deixa o código mais organizado e fácil de ler.

Uma melhoria interessante seria validar a entrada do saldo inicial para evitar valores negativos. Você pode usar um loop para garantir que o usuário insira um valor válido:

do {
    System.out.print("Digite seu saldo inicial: ");
    saldoAtual = scanner.nextDouble();
    if (saldoAtual < 0) {
        System.out.println("Saldo não pode ser negativo. Tente novamente.");
    }
} while (saldoAtual < 0);

Isso impede que o saldo inicie com um valor inválido, melhorando a robustez do sistema.

Bons estudos!