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] Projeto final do desafio

import java.util.ArrayList;
import java.util.Scanner;

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

    //Declaração de Biblioteca
    Scanner leitor = new Scanner(System.in);

    //Declaração de looping
    boolean repetir = true;

    System.out.println("Digite o seu saldo bancário");
    //Declaração de variável
    double saldo = leitor.nextInt();

    //Transferências
    ArrayList<Double> transferencias = new ArrayList<>();

    while (repetir) {

        System.out.println(("************************"));
        System.out.println("Dados Iniciais do cliente");
        System.out.println("Tipo de conta: Corrente");
        System.out.println("Saldo incial: R$" + saldo );
        System.out.println("*************************");

        System.out.println("Operações?");
        System.out.println("1 - Consultar saldos");
        System.out.println("2 - Receber valor ");
        System.out.println("3 - Transferir valor");
        System.out.println("4 - Sair");

        System.out.println("Qual opção você deseja?");
        int opcao = leitor.nextInt();

        switch(opcao){
            case 1:
                System.out.println("O valor de suas transferências foi de: ");
                for (int i = 0; i < transferencias.size(); i++){
                    System.out.println(
                            "Transferencia: " + (i + 1) + ": R$" + transferencias.get(i)

                    );
                }
            case 2:
                System.out.println("Digite o valor que será adicionado a conta corrente: ");
                double valor = leitor.nextDouble();
                saldo += valor;
                System.out.println("Saldo atual: " + saldo);
                continue;

            case 3:
                System.out.println("Digite o valor que será transferido");
                double valor2 = leitor.nextDouble();
                saldo -= valor2;
                System.out.println("Saldo atual: " + saldo);
                transferencias.add(valor2);
                continue;

            case 4:
                System.out.println("Deseja mesmo sair da operação [S/N]?");
                String opcao2 = leitor.next();

                if (opcao2.equals("S")) {
                    repetir = false;
                    break;
                }
                else if (opcao2.equals("N")) {
                    repetir = true;
                    continue;
                }
        }
    }
    leitor.close();
}

}

1 resposta

Oi, Yago! Como vai?

Agradeço por compartilhar.

Seu projeto ficou bem completo ao usar Scanner, while, switch e uma ArrayList para registrar as transferências. Um ponto importante é que no case 1 faltou um break ou continue; sem isso, depois de consultar as transferências, o programa também executa o case 2.

Uma dica interessante para o futuro é usar break ao final de cada opção do switch, evitando que uma operação entre na outra sem querer. Veja este exemplo:

case 1:
    System.out.println("Saldo atual: R$" + saldo);
    break;

case 2:
    System.out.println("Digite o valor que sera adicionado:");
    double valor = leitor.nextDouble();
    saldo += valor;
    System.out.println("Saldo atual: R$" + saldo);
    break;

Esse ajuste faz cada opção executar apenas o próprio bloco de código. Pensando na parte de transferência, como você poderia validar se o valor digitado é maior que o saldo antes de subtrair?

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