1
resposta

Desafio menu banco - Resolução

Tive algumas dúvidas quando cheguei nos laços de repetição e usei o chat gpt pra me ajudar a entender o do/while, já que as outras opções de operadores loop(while, for) estavam incorrendo em loop infinito ou eu não entendia a lógica.

import java.util.Scanner;

public class DesafioBanco {
    public static void main(String[] args) {
        //definindo variaveis para armazenar valores fora do loop
        Scanner scanner = new Scanner(System.in);
        double saldoInicial = 1656.00;
        String nomeCliente = "Gabriel Holanda";
        String tipoDeConta = "Corrente";
        int opcao;

        String interfaceApp =
                String.format(
                """
                ***********************
              
                Dados iniciais do cliente
                
                Nome:           %s
                Tipo de Conta:  %s
                Saldo Inicial:  R$ %.2f
                
                ***********************""",
                nomeCliente,      // %s → nomeCliente
                tipoDeConta,      // %s → tipoDeConta
                saldoInicial      // %.2f → saldoInicial
        );
        String operacoesApp = """
                 Operações
                
                1- Consultar saldo
                2- Depositar
                3- Transferir 
                4- Sair
                
                Digite a opção desejada:""";
        do {
            System.out.println(interfaceApp);
            System.out.println(operacoesApp);
            opcao = scanner.nextInt();

            switch (opcao) {
                case 1:
                    System.out.println("Seu saldo atual é: R$ " + saldoInicial);
                    break;
                case 2:
                    System.out.print("Digite o valor a depositar: ");
                    double deposito = scanner.nextDouble();
                    saldoInicial += deposito;
                    System.out.println("Depósito realizado. Novo saldo: R$ " + saldoInicial);
                    break;
                case 3:
                    System.out.print("Digite o valor a transferir: ");
                    double transferencia = scanner.nextDouble();
                    if (transferencia <= saldoInicial) {
                        saldoInicial -= transferencia;
                        System.out.println("Transferência realizada. Novo saldo: R$ " + saldoInicial);
                    } else {
                        System.out.println("Saldo insuficiente.");
                    }
                    break;
                case 4:
                    System.out.println("Encerrando operação. Obrigado!");
                    break;
                default:
                    System.out.println("Opção inválida. Tente novamente.");
            }

        } while (opcao != 4);

        scanner.close();
    }
}
1 resposta

Olá Gabriel, tudo bem?

Que bom que você está se desafiando com esse projeto de controle de conta bancária! Você mencionou que teve dificuldades com loops infinitos, mas conseguiu resolver usando do/while, o que é ótimo, pois esse tipo de loop é ideal quando você quer garantir que o bloco de código seja executado pelo menos uma vez.

Uma dica interessante para o futuro é considerar o uso do método nextLine() do Scanner para capturar a entrada do usuário, pois ele é mais flexível, quando você deseja capturar strings com espaços. Veja este exemplo:


Scanner scanner = new Scanner(System.in);
System.out.print("Digite seu nome: ");
String nome = scanner.nextLine();
System.out.println("Olá, " + nome + "!");

Esse método ajuda a evitar problemas quando o usuário digita mais de uma palavra, como no caso de nomes.

Qualquer dúvida que surgir, compartilhe no fórum. Abraços e bons estudos!

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!