1
resposta

[Desafio final] Minha solução

Testei resolver o desafio antes de ver as aulas. Segue como fiz:

import java.util.Scanner;

public class DesafioFinal {
  public static void main(String[] args) {
    /*
      - Desafio final
      Sumular um aplicação de banco onde o cliente tem as opções:
       - verificar saldo;
       - adicionar uma nova transferencia (valor deve ser maior que zero e tem que ter saldo para fazer);
       - receber uma nova tranferência (valor deve ser maior que zero)
       - sair do programa;
    */
    Scanner reading = new Scanner(System.in);
    String name = "Anna Doe";
    double saldo = 2500.00;
    String typeConta = "Corrente";

    System.out.println(String.format("""
    ******************************************
     Nome: %s;
     Tipo de conta: %s;
     Saldo inicial: R$ %.2f;
    ******************************************
    """,name, typeConta, saldo));

    optionsScreen(saldo, reading);
    reading.close();
  }

  static void optionsScreen(double saldo, Scanner reading){
    
    String textoOptions = """
     Operações
    
     1 - Consultar saldos
     2 - Receber valor
     3 - transferir valor
     4 - Sair
    """;

    System.out.println(textoOptions);
    int userInput = reading.nextInt();
    double newTransation = 0;

    while(userInput < 1 || userInput > 4){
      System.out.println("""
      -----------------------
        Valor inválido, tente novamente.
      -----------------------
      """);

      System.out.println(textoOptions);

      userInput = reading.nextInt();
    }

    switch (userInput){
      case 1:
        System.out.println(String.format("""
        -----------------------
        Seu saldo atual é R$ %.2f;
        -----------------------
        """, saldo));
        optionsScreen(saldo, reading);

        break;
      case 2:
        System.out.println("Informar valor a receber:");
        newTransation = reading.nextDouble();

        while(newTransation <= 0){
          System.out.println("O valor não pode ser negativo!");
          System.out.println("Insira um novo valor:");
          newTransation = reading.nextDouble();
        }

        saldo += newTransation;

        System.out.println("Saldo atualizado!");
        System.out.println("Saldo atual é de R$ " + saldo);
        optionsScreen(saldo, reading);
        break;
      case 3:
        System.out.println("Informar valor da transferência:");
        newTransation = reading.nextDouble();

        while(newTransation <= 0 || newTransation > saldo){
          if(newTransation <= 0 ){
            System.out.println("O valor não pode ser negativo!");
            System.out.println("Insira um novo valor:");
          }else{
            System.out.println(String.format("""
            -----------------------
            Saldo insuficiênte na conta!
            Seu saldo atual é R$ %.2f;
            Por favor informar um valor válido para continuar com a transação.
            -----------------------
            """, saldo));
          }

          newTransation = reading.nextDouble();
        }

        saldo -= newTransation;
        System.out.println("Saldo atualizado!");
        System.out.println("Saldo atual é de R$ " + saldo);
        optionsScreen(saldo, reading);
      default:
        System.out.println("Finalizar programa.");
    }
  };
}
1 resposta

Olá, Diego! Tudo joia?

Parabéns por ter se desafiado a resolver o exercício antes de assistir às aulas!

Você fez um ótimo trabalho ao criar um menu de opções e implementar as funcionalidades de consultar saldo, receber valor e transferir valor. Além disso, seu uso de Scanner para interagir com o usuário está muito bem estruturado.

Continue empenhado e bons estudos!