1
resposta

[Dúvida] está certo dessa forma ?

import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        String nome = "jose";
        int idade = 23;

        double saldo = 100.0;

        String menu = """
                ===========menu===========
                Digite 1 - consultar saldo
                Digite 2 - sacar saldo
                Digite 3 - depositar saldo
                Digite 4 - sair
                """;
        int opcao;


        do {
            System.out.println(menu);

            opcao = input.nextInt();


            switch (opcao) {
                case 1:
                    System.out.println("nome = " + nome);
                    System.out.println("idade = " + idade);
                    System.out.println("saldo = R$" + saldo);
                    break;
                case 2:
                    System.out.println("quanto você quer sacar : ");
                    int sacar = input.nextInt();
                    if (sacar <= saldo) {
                        saldo -= sacar;
                        System.out.println("saque realizado");
                    } else {
                        System.out.println("Saldo insuficiente");
                    }

                    break;
                case 3:
                    System.out.println("quanto você quer depositar : ");
                    int depositar = input.nextInt();
                    saldo += depositar;
                    System.out.println("valor depositado");
                    break;
                case 4:
                    System.out.println("encerrando sistema...");
                    break;
                default:
                    System.out.println("opção invalida");


            }
        } while (opcao != 4);
        input.close();
    }
}
1 resposta

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:

  1. 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.
  2. 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.
  3. 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.

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