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

[Projeto] Desafio resolvido: Projeto Bancario

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);

        System.out.println("Olá, seja bem-vindo! Para realizar operações, você deve inicializar sua conta.");

        // Dados do cliente
        System.out.print("Digite seu nome: ");
        String nomeCliente = sc.nextLine();

        // Validar tipo de conta
        int tipoContaNumero;
        String tipoConta;

        while (true) {
            System.out.println("""
                    
                    Informe seu tipo de conta:
                    1 - Poupança
                    2 - Corrente
                    """);

            tipoContaNumero = sc.nextInt();

            if (tipoContaNumero == 1) {
                tipoConta = "Poupança";
                break;
            } else if (tipoContaNumero == 2) {
                tipoConta = "Corrente";
                break;
            } else {
                System.out.println("Opção inválida. Tente novamente.");
            }
        }

        // Validar saldo inicial
        double saldo;

        while (true) {
            System.out.print("Informe seu saldo inicial: ");

            saldo = sc.nextDouble();

            if (saldo >= 0) {
                break;
            } else {
                System.out.println("O saldo não pode ser negativo.");
            }
        }

        // Exibir dados
        System.out.println("""
                
                ***********************************
                ACESSO CONCEDIDO
                
                Nome do cliente: %s
                Tipo de Conta: %s
                Saldo atual: %.2f
                
                ***********************************
                """.formatted(nomeCliente, tipoConta, saldo));

        // Menu
        int opcao = 0;

        while (opcao != 4) {

            System.out.println("""
                    
                    Operações
                    
                    1 - Consultar saldo
                    2 - Receber valor
                    3 - Transferir valor
                    4 - Sair
                    """);

            System.out.print("Escolha uma opção: ");
            opcao = sc.nextInt();

            switch (opcao) {

                case 1:
                    System.out.printf("Saldo atual: %.2f%n", saldo);
                    break;

                case 2:
                    System.out.print("Digite o valor a receber: ");
                    double valorReceber = sc.nextDouble();

                    if (valorReceber > 0) {
                        saldo += valorReceber;
                        System.out.printf("Valor recebido com sucesso. Novo saldo: %.2f%n", saldo);
                    } else {
                        System.out.println("Valor inválido. Digite um valor maior que zero.");
                    }
                    break;

                case 3:
                    System.out.print("Digite o valor a transferir: ");
                    double valorTransferir = sc.nextDouble();

                    if (valorTransferir <= 0) {
                        System.out.println("Valor inválido.");
                    } else if (valorTransferir > saldo) {
                        System.out.println("Saldo insuficiente.");
                    } else {
                        saldo -= valorTransferir;
                        System.out.printf("Transferência realizada. Novo saldo: %.2f%n", saldo);
                    }
                    break;

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

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

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

Olá, Aldeny! Como vai?

Gostei da forma como você utilizou while (true) para validar o tipo de conta e o saldo inicial, garantindo que o usuário só avance com dados válidos. A organização do menu com switch também deixou o fluxo bem claro e fácil de entender, mostrando que você consolidou bem os conceitos de estruturas de repetição e decisão.

Uma dica interessante para o futuro é utilizar o método hasNextInt() da classe Scanner para validar a entrada antes de ler o número, evitando erros caso o usuário digite texto em vez de número. Veja este exemplo:


Scanner sc = new Scanner(System.in);

if (sc.hasNextInt()) {
    int numero = sc.nextInt();
    System.out.println(numero);
} else {
    System.out.println("Entrada invalida");
}

Esse código verifica se o valor digitado eh um número inteiro antes de fazer a leitura, aumentando a segurança da aplicação.

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