Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

1
resposta

[Projeto] Desafio Final


import java.util.Locale;
import java.util.Scanner;

public class Desafio {
    
    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in).useLocale(Locale.US);

        String nome = "Raphael";
        String tipoConta = "Corrente";
        double saldoInicial = 12000.00;

        String mensagemInicial = """
                **************************************
                Dados iniciais do cliente:

                Nome: %s
                Tipo conta: %s
                Saldo inicial: %.2f 

                **************************************
                """.formatted(nome, tipoConta, saldoInicial);

        String operacoes = """
                Operações:

                1 - Consultar saldo
                2 - Receber valor
                3 - Transferir valor
                4 - Sair
                """;
        
        System.out.println(mensagemInicial);

        boolean sair = false;

        while(!sair) {

            System.out.println(operacoes);

            System.out.print("Digite a opção desejada: ");
            int opcao = scanner.nextInt();

            switch (opcao) {
                case 1:
                    consultarSaldo(saldoInicial);
                    break;

                case 2:
                    System.out.print("Informe um valor a receber: ");
                    double deposito = scanner.nextDouble();
                    double novoDeposito = validarOperacao(deposito, "deposito");
                    saldoInicial += novoDeposito;
                    consultarSaldo(saldoInicial);
                    break;

                case 3:
                    System.out.print("Informe o valor que deseja transferir: ");
                    double transferencia = scanner.nextDouble();
                    if (transferencia > saldoInicial){
                        System.out.println("Não há saldo suficiente para fazer essa transferência!");
                        break;
                    }
                    double novoSaldo = validarOperacao(transferencia, "transferencia");
                    saldoInicial += novoSaldo;
                    consultarSaldo(saldoInicial);
                    break;

                case 4:
                    sair = true;
                    System.out.println("Saindo...");
                    break;
            
                default:
                    System.out.println("Opção inválida");;
            }
        }

        scanner.close();
    }

    public static double validarOperacao(double valor, String operacao) {
        if(valor < 0){
            System.out.println("O valor informado não pode ser negativo!");
            return 0;
        } else {
            return operacao.equalsIgnoreCase("transferencia") ? valor * -1 : valor;
        }
    }

    public static void consultarSaldo(double saldoInicial) {
        System.out.println(String.format("O saldo atual é de R$%.2f\n", saldoInicial));
    }

}
1 resposta

Oi, Raphael. Tudo bem com você?

Obrigado por compartilhar o código do projeto final. Sua solução atende aos requisitos da atividade, utilizando estruturas importantes da linguagem Java, como switch, laço while, métodos para organizar a lógica e validação das operações. A separação das funcionalidades em consultarSaldo e validarOperacao torna o código mais organizado e facilita futuras manutenções. Além disso, o uso de String com blocos de texto (""") e do método formatted() deixa a apresentação das informações mais legível, mostrando que você explorou recursos atuais da linguagem.

Como desafio adicional, o que você mudaria no projeto para permitir que o usuário informe o nome do cliente e o saldo inicial durante a execução do programa, em vez de utilizar valores fixos?

Parabéns pelo projeto e por compartilhar sua solução. O fórum está à disposição caso queira apresentar novas versões ou esclarecer outras dúvidas.

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