2
respostas

[Projeto] Minha resolução para o desafio proposto (ainda não vi a solução da instrutora)

import java.util.Scanner;

public class DesafioAlura {

public static void dadosCliente(){

    System.out.println("""
                *****************************************
                Dados iniciais do cliente:
                
                Nome:            Manuela Góis
                Tipo conta:      Corrente
                Saldo inicial:   R$ 2500,00
                *****************************************
                """);
    return;
}

public static void menuOpcoes(){
    System.out.println("""
            Menu de Operações
            
            1 - Consultar saldo
            2 - Receber valor
            3 - Transferir valor
            4 - Sair""");
}

public static void main(String[] args) {

    double saldo = 2500.00;
    Scanner leitura = new Scanner(System.in);
    int escolha;

    dadosCliente();

    while (true){

        menuOpcoes();
        escolha = leitura.nextInt();

        switch (escolha) {
            case 1:
                System.out.println("O saldo é: R$" + saldo);
                break;

            case 2:
                System.out.println("Qual valor deseja receber?");
                double valorReceber = leitura.nextDouble();
                saldo += valorReceber;
                System.out.println("Seu novo saldo é de: R$" + saldo);
                break;

            case 3:
                System.out.println("Qual valor deseja transferir?");
                double valorTransferir = leitura.nextDouble();
                if(saldo < valorTransferir){
                    System.out.println("Saldo insuficiente.");
                } else {
                    saldo -= valorTransferir;
                    System.out.println("Transferência realizada com sucesso.");
                    System.out.println("Seu novo saldo é de R$" + saldo);
                }
                saldo -= valorTransferir;

                break;

            case 4:
                System.out.println("Encerrando o sistema...");
                leitura.close();
                return;

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

    }

}

}

2 respostas

Show!!

O programa está bem estruturado, o próximo passo é tornar o método "dadosCliente()" responsivo. Crie uma opção para mostrar os dados do cliente de forma completa e com o saldo atualizado para obter maior experiência com a manipulação de String.

Está indo muito bem!

Bom dia, Eduardo!

Fiz a correção do método. Meu código atualizado:

import java.util.Scanner;

public class ExercíciosAlura {

public static void dadosCliente(double saldo){

    System.out.println("""
                *****************************************
                Dados iniciais do cliente:
                
                Nome:            Manuela Góis
                Tipo conta:      Corrente
                Saldo inicial:   R$ %.2f
                *****************************************
                """.formatted(saldo));
    return;
}

public static void menuOpcoes(){
    System.out.println("""
            Menu de Operações
            
            1 - Consultar saldo
            2 - Receber valor
            3 - Transferir valor
            4 - Exibir dados do ciente
            5 - Sair""");
}

public static void main(String[] args) {

    double saldo = 2500.00;
    Scanner leitura = new Scanner(System.in);
    int escolha;

    dadosCliente(saldo);

    while (true){

        menuOpcoes();
        escolha = leitura.nextInt();

        switch (escolha) {
            case 1:
                System.out.println("O saldo é: R$" + saldo);
                break;

            case 2:
                System.out.println("Qual valor deseja receber?");
                double valorReceber = leitura.nextDouble();
                saldo += valorReceber;
                System.out.println("Seu novo saldo é de: R$" + saldo);
                break;

            case 3:
                System.out.println("Qual valor deseja transferir?");
                double valorTransferir = leitura.nextDouble();
                if(saldo < valorTransferir){
                    System.out.println("Saldo insuficiente.");
                } else {
                    saldo -= valorTransferir;
                    System.out.println("Transferência realizada com sucesso.");
                    System.out.println("Seu novo saldo é de R$" + saldo);
                }
                break;

            case 4:
                dadosCliente(saldo);
                break;

            case 5:
                System.out.println("Encerrando o sistema...");
                leitura.close();
                return;

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

    }

}

}

E foi bom passar os olhos novamente no código, pois percebi que cometi um erro no case 3, estava descontando o valor duas vezes. Percebi ao chamar o método dadosCliente() na opção 4, pois não mostrava o valor correto após uma transferência. Mas já corrigi e está tudo certo!