Oii, José.
O seu código tá certíssimo e ficou muito organizado.
Vou destacar os pontos fortes da sua lógica e deixar apenas uma sugestão de melhoria:
Pontos positivos:
- Uso do
do-while: Pra menus de console, essa estrutura é perfeita. Diferente do while simples (que verifica a condição antes de entrar), o do-while garante que o menu seja exibido pelo menos uma vez antes de checar se deve sair. Isso eliminou a necessidade de inicializar a variável opcao com um valor "falso" (como zero) logo de cara. - Uso do
switch-case: em vez de fazer vários if e else if pra cada opção (1, 2, 3, 4), o switch deixa o código muito mais limpo e legível. É a melhor escolha para quando temos múltiplas escolhas definidas. - Boas práticas: você lembrou de fechar o Scanner no final (
input.close()), o que é ótimo para evitar vazamento de recursos.
Sugestão de melhoria:
Notei que o seu saldo é do tipo double (aceita centavos), mas as variáveis sacar e depositar você declarou como int e usou input.nextInt().
Isso significa que, se o usuário tentar depositar "50,50", o programa vai dar erro ou ignorar os centavos. Como estamos lidando com dinheiro, o ideal é padronizar tudo como double.
O ajuste ficaria assim dentro dos cases:
case 2:
System.out.println("Quanto você quer sacar: ");
double sacar = input.nextDouble(); // Mudando para double
// ... restante do código
break;
case 3:
System.out.println("Quanto você quer depositar: ");
double depositar = input.nextDouble(); // Mudando para double
// ... restante do código
break;
Fora esse detalhe, sua lógica está excelente. Parabéns por ir além do básico.
Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!