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!

0
respostas

Desafio Bancário com números validados

Percebi que tinha uma "falha" na matemática do código: caso digitassem um número negativo, os calculos de transferência invertiam. Daí foi necessário criar outra condicional em cada um para garantir que os números inseridos fossem maiores que 0. (Caso exista uma maneira melhor de validar, me digamm)

E ficou assim:

import java.util.Scanner;

public class DesafioBanco {
    public static void main(String[] args) {
        Scanner leitor = new Scanner(System.in);
        String nomeCliente = "Isabella Lucio";
        String tipoConta = "Corrente";
        double saldo = 1000;
        int escolha = 0;
        double recebido = 0;
        double transferido = 0;

        String dadosCliente = """
                ***************************************************************
                Nome: %s
                Tipo de conta: %s
                Saldo inicial : %.2f
                ***************************************************************
                """.formatted(nomeCliente, tipoConta, saldo);
        System.out.println(dadosCliente);

        String mensagemInicio = """
                
                1- Consultar saldo
                2- Receber valor
                3- Transferência de valor
                4- Sair
                Digite a opção desejada abaixo:
                """;
        while (escolha !=4 ){
            System.out.println(mensagemInicio);
            escolha = leitor.nextInt();
            if (escolha == 1) {
                System.out.println(String.format("Seu saldo atual é: %.2f",saldo));

            } else if (escolha == 2) {
                System.out.println("Digite o valor a ser recebido: ");
                recebido = leitor.nextDouble();
                if (recebido <= 0){
                    System.out.println("Digite um valor maior que 0");
                } else {
                    saldo += recebido;
                    System.out.println("Seu saldo agora é: " + saldo);
                }

            }else if (escolha == 3) {
                System.out.println("Digite o valor a ser transferido: ");
                transferido = leitor.nextDouble();
                if (transferido <=0) {
                    System.out.println("Digite um valor maior que 0");
                } else if (transferido > saldo) {
                    System.out.println("Não há saldo para realizar transferência");
                } else {
                    saldo -= transferido;
                    System.out.println("Seu saldo agora é: " + saldo);
                }
            } else if (escolha == 4) {
                System.out.println("Você saiu.");
            } else {
                System.out.println("Número inválido, tente novamente.");
            }
        }
    }
}