1
resposta

Entrega do desafio

Eu fiz um pouco diferente do que passado nos videos, usei o switch case e ao invés de comessar com os dados nome, conta e valor fixos, eu solicitei para o usuário digitar. Chegou no mesmo objetivo. A única coisa que não consegui fazer era trocar o ponto por virgula ao aparecer o saldo (exemplo: de R$2500.0 para R$2500,00).

import java.util.Scanner;

public class DesafioBanco {
    public static void main(String[] args) {
        Scanner leitura = new Scanner(System.in);
        String nome;
        String conta;
        double valor;
        int opcao;
        double receber;
        double depositar;

        System.out.println("*************************");
        System.out.println("####Sistema bancário####");
        System.out.println("*************************");
        System.out.println("Informe seu nome completo: ");
        nome = leitura.nextLine();
        System.out.println("Tipo de Conta bancária: ");
        conta = leitura.nextLine();
        System.out.println("Valor a ser depositado: ");
        valor = leitura.nextDouble();
        System.out.println("*************************");
        System.out.println("Dados iniciais do cliente:\n");
        System.out.println("Nome: " + nome);
        System.out.println("Tipo de Conta: " + conta);
        System.out.println("Saldo em conta: R$" + valor);
        System.out.println("*************************");

        while(true){
            System.out.println("Operações:\n1- Consultar saldos\n2- Receber valor\n3- Depositar valor\n4- Sair\nDigite a opção desejada: ");
            opcao = leitura.nextInt();


            switch (opcao){
                case 1:
                    System.out.println("Saldo Atual: " + valor);
                    break;
                case 2:
                    System.out.println("Digite valor a receber: ");
                    receber = leitura.nextDouble();

                    while (receber > valor){
                        System.out.println("Valor superior ao saldo em conta.");
                        System.out.println("Digite valor a receber: ");
                        receber = leitura.nextDouble();
                    }
                    if (receber <= valor){
                        valor -= receber;
                        System.out.println("Valor de R$" +receber+" recebido.\nSaldo atual da conta R$: " + valor);
                    }
                    break;
                case 3:
                    System.out.println("Digite um valor a ser Depositado: ");
                    depositar = leitura.nextDouble();

                    while ( depositar < 0){
                        System.out.println("Valor inválido. Não é possível depositar valor negativo");
                        System.out.println("Digite valor a depositar: ");
                        depositar = leitura.nextDouble();
                    }
                    if (depositar > 0){
                        valor += depositar;
                        System.out.println("Valor de R$" +depositar+" depositado.\nSaldo atual da conta R$: " + valor);
                    }
                    break;
                case 4:
                    System.out.println("Sair selecionado.");

                    break;
                default:
                    System.out.println("Opção inválida.");
                    break;
            }
            if (opcao == 4) {
                break;
            }

        }
    }
}
1 resposta

Oi, Lucas, Adiciona o DecimalFormat, converte para String e faz o replace do ponto.

System.out.println("Saldo em conta: R$ " + new DecimalFormat("0.00").format(valor).toString().replace(".", ","));